public class PostgresDatabase extends Database
Database d=new PostgresDatabase("user","password");
d.queryColumn("SELECT foodname FROM food WHERE origin=\"Italy\"")
-> [ "Pizza Romana", "Spaghetti alla Bolognese", "Saltimbocca"]
Database.describe(d.query("SELECT * FROM food WHERE origin=\"Italy\"")
-> foodname |origin |calories |
------------------------------
Pizza Rom|Italy |10000 |
Spaghetti|Italy |8000 |
Saltimboc|Italy |8000 |
This class also provides SQL datatypes (extensions of SQLType.java) that
behave according to the conventions of Postgres. For example, VARCHAR string literals print
inner quotes as doublequotes.| Modifier and Type | Class and Description |
|---|---|
static class |
PostgresDatabase.Postgretext |
static class |
PostgresDatabase.PostgreVarchar |
Database.CommitTransactionSQLException, Database.ConnectionBrokenSQLException, Database.InitTransactionSQLException, Database.Inserter, Database.RollbackTransactionSQLException, Database.StartAutoCommitSQLException, Database.TransactionSQLException| Modifier and Type | Field and Description |
|---|---|
static PostgresDatabase.Postgretext |
postgretext |
static PostgresDatabase.PostgreVarchar |
postgrevarchar |
protected java.lang.String |
schema
Holds the default schema
|
connection, description, driver, fetchsize, inserters, java2SQL, MINCOLUMNWIDTH, resultSetConcurrency, resultSetType, SCREENWIDTH, type2SQL| Constructor and Description |
|---|
PostgresDatabase()
Constructs a non-functional PostgresDatabase for use of getSQLType
|
PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port) |
PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port,
boolean useSSL)
Constructs a new Database from a user, a password and a host
|
PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port,
java.lang.String schema)
Constructs a new Database from a user, a password and a host, setting also the (preferred) schema (public stays fallback schema)
|
PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port,
java.lang.String schema,
boolean useSSL)
Constructs a new Database from a user, a password and a host, setting also the (preferred) schema (public stays fallback schema)
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
autoincrementColumn()
Produces an SQL fragment representing column properties for an autoincrementing integer column
s.t.
|
java.lang.String |
cast(java.lang.String value,
java.lang.String type)
Produces an SQL fragment casting the given value to the given type *
|
protected void |
commitTransaction()
commits the transaction aggregated so far
if the commit fails the transaction is rolled back!
|
void |
connect()
connects to the database specified
|
void |
createTable(java.lang.String name,
java.lang.Object... attributes)
Creates or rewrites an SQL table.
|
java.lang.String |
getSQLStmntIFNULL(java.lang.String a,
java.lang.String b)
returns the database system specific expression for ifnull functionality
i.e.
|
boolean |
jarAvailable()
TRUE if the required JAR is there
|
void |
lockTableReadAccess(java.util.Map<java.lang.String,java.lang.String> tablesAndAliases)
Locks a table in read mode, i.e.
|
void |
lockTableWriteAccess(java.util.Map<java.lang.String,java.lang.String> tablesAndAliases)
Locks a table in write mode, i.e.
|
static void |
main(java.lang.String[] args) |
void |
releaseLocksAndEndTransaction()
releases all locks the connection holds, commits the current transaction and ends it
|
void |
setExclusiveSchema(java.lang.String s)
Sets the default schema
|
void |
setSchema(java.lang.String s)
Sets the default schema
|
void |
startTransaction()
Initiates a transaction by disabling autocommit and enabling transaction mod
Note: In Postgres transactions have a name e
|
appendFixedLen, attemptReconnect, close, close, close, close, connected, createIndex, createIndexCommand, createIndices, createPrimaryKey, createView, describe, describe, dumpCSV, dumpQueryAsCSV, endTransaction, endTransaction, executeQuery, executeUpdate, executeUpdateQuery, exists, existsTable, finalize, flush, format, formatNullToNull, getConnection, getFetchsize, getResultSetConcurrency, getResultSetType, getSQLType, getSQLType, getSQLType, getValidityCheckTimeout, indexName, isAutoReconnectingOnSelect, isAutoReconnectingOnUpdate, limit, loadCSV, makeCSV, makeCSVForQuery, newInserter, newInserter, newInserter, offset, prepareQuery, query, query, query, query, queryValue, reconnect, resetTransaction, runInterface, setAutoReconnectOnSelect, setAutoReconnectOnUpdate, setFetchsize, setResultSetConcurrency, setResultSetType, setValidityCheckTimeout, toStringprotected java.lang.String schema
public static PostgresDatabase.PostgreVarchar postgrevarchar
public static PostgresDatabase.Postgretext postgretext
public PostgresDatabase()
public PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port,
boolean useSSL)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.ClassNotFoundException,
java.sql.SQLException
java.lang.ClassNotFoundExceptionjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionjava.sql.SQLExceptionpublic PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.ClassNotFoundException,
java.sql.SQLException
java.lang.InstantiationExceptionjava.lang.IllegalAccessExceptionjava.lang.ClassNotFoundExceptionjava.sql.SQLExceptionpublic PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port,
java.lang.String schema,
boolean useSSL)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.ClassNotFoundException,
java.sql.SQLException
java.lang.InstantiationExceptionjava.lang.IllegalAccessExceptionjava.lang.ClassNotFoundExceptionjava.sql.SQLExceptionpublic PostgresDatabase(java.lang.String user,
java.lang.String password,
java.lang.String database,
java.lang.String host,
java.lang.String port,
java.lang.String schema)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.ClassNotFoundException,
java.sql.SQLException
java.lang.InstantiationExceptionjava.lang.IllegalAccessExceptionjava.lang.ClassNotFoundExceptionjava.sql.SQLExceptionpublic void connect()
throws java.sql.SQLException
public void setSchema(java.lang.String s)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void setExclusiveSchema(java.lang.String s)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void createTable(java.lang.String name,
java.lang.Object... attributes)
throws java.sql.SQLException
createTable in class Databasejava.sql.SQLExceptionpublic boolean jarAvailable()
DatabasejarAvailable in class Databasepublic java.lang.String cast(java.lang.String value,
java.lang.String type)
public java.lang.String getSQLStmntIFNULL(java.lang.String a,
java.lang.String b)
getSQLStmntIFNULL in class Databasepublic java.lang.String autoincrementColumn()
autoincrementColumn in class Databasepublic void startTransaction()
throws Database.InitTransactionSQLException
startTransaction in class DatabaseDatabase.InitTransactionSQLExceptionprotected void commitTransaction()
throws Database.TransactionSQLException
commitTransaction in class DatabaseDatabase.TransactionSQLExceptionpublic void lockTableWriteAccess(java.util.Map<java.lang.String,java.lang.String> tablesAndAliases)
throws java.sql.SQLException
lockTableWriteAccess in class Databasejava.sql.SQLExceptionpublic void lockTableReadAccess(java.util.Map<java.lang.String,java.lang.String> tablesAndAliases)
throws java.sql.SQLException
lockTableReadAccess in class Databasejava.sql.SQLExceptionpublic void releaseLocksAndEndTransaction()
throws java.sql.SQLException
releaseLocksAndEndTransaction in class Databasejava.sql.SQLExceptionpublic static void main(java.lang.String[] args)