de.mguennewig.pobjects.jdbc
Class PostgreSQLContainer

java.lang.Object
  extended by de.mguennewig.pobjects.AbstractContainer
      extended by de.mguennewig.pobjects.jdbc.JdbcContainer
          extended by de.mguennewig.pobjects.jdbc.PostgreSQLContainer
All Implemented Interfaces:
Container

public class PostgreSQLContainer
extends JdbcContainer

Container implementation for PostgreSQL databases.

This implementation uses a type table to work around the limitations of PostgreSQL INHERITS support.

Author:
Michael Günnewig
See Also:
getCapabilities(), PostgreSQL

Field Summary
 
Fields inherited from interface de.mguennewig.pobjects.Container
SUPPORTS_BOOLEAN, SUPPORTS_INHERITS, SUPPORTS_JOIN, SUPPORTS_LIMIT_OFFSET, SUPPORTS_ORACLE_JOIN, SUPPORTS_SQL99_JOIN, USE_ARRAY_FOR_LOB, USE_STREAM_TO_INSERT_LOB
 
Constructor Summary
PostgreSQLContainer(java.sql.Connection conn, PObjDictionary dict, java.lang.String schema)
          Creates a container with a specified connection to a DBMS, which must denote a PostgreSQL compatible DBMS.
PostgreSQLContainer(PObjDictionary dict, java.lang.String schema)
          Creates a container without a connection to a PostgresSQL DB.
PostgreSQLContainer(java.lang.String hostname, java.lang.Integer port, java.lang.String database, java.lang.String username, java.lang.String password, PObjDictionary dict, java.lang.String schema)
           
 
Method Summary
 int getCapabilities()
          Returns the capabilities of the DBMS.
 java.lang.String getConnectURL(java.lang.String hostname, java.lang.Integer port, java.lang.String database)
          
 java.lang.String getSequenceCurrentValue(Sequence seq)
          Returns the current value of the given sequence.
 java.lang.String getSequenceNextValue(Sequence seq)
          Returns a new value of the given sequence.
 java.lang.String insertObject(PObject obj)
          Inserts the given object into the database.
 
Methods inherited from class de.mguennewig.pobjects.jdbc.JdbcContainer
addArguments, addParameter, beginTransaction, close, commitTransaction, deleteAll, deleteAll, deleteObject, deleteRecord, getConnection, getConnectProperties, getObject, insertRecord, mapClassDeclToPClassId, mapPClassIdToClassDecl, newEvalContext, newQuery, prepareStatement, prepareStatement, reset, retrieveData, rollbackTransaction, setConnection, updateObject
 
Methods inherited from class de.mguennewig.pobjects.AbstractContainer
createObject, deleteAll, getClassDecl, getClassDecls, getData, getDictionary, getObject, getQualifiedName, getSchema, getTableExpr, isStrictMode, makePersistent, newQuery, newQuery, newQuery, newQuery, newQuery, newQuery, newQuery, newQuery, notifyChange, setStrictMode, storeAll, supportsBoolean, supportsInherits, supportsLimitOffset, supportsOracleJoin, supportsSQL99Join, useArrayForLob, useStreamToInsertLob
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PostgreSQLContainer

public PostgreSQLContainer(PObjDictionary dict,
                           java.lang.String schema)
Creates a container without a connection to a PostgresSQL DB.


PostgreSQLContainer

public PostgreSQLContainer(java.lang.String hostname,
                           java.lang.Integer port,
                           java.lang.String database,
                           java.lang.String username,
                           java.lang.String password,
                           PObjDictionary dict,
                           java.lang.String schema)
                    throws java.sql.SQLException
Throws:
java.sql.SQLException

PostgreSQLContainer

public PostgreSQLContainer(java.sql.Connection conn,
                           PObjDictionary dict,
                           java.lang.String schema)
                    throws java.sql.SQLException
Creates a container with a specified connection to a DBMS, which must denote a PostgreSQL compatible DBMS.

NOTE: Auto-commitment will be turned off which is normally turned on for JDBC.

Throws:
java.sql.SQLException
Method Detail

getConnectURL

public java.lang.String getConnectURL(java.lang.String hostname,
                                      java.lang.Integer port,
                                      java.lang.String database)

Specified by:
getConnectURL in class JdbcContainer

getCapabilities

public int getCapabilities()
Returns the capabilities of the DBMS.

Currently returns Container.SUPPORTS_SQL99_JOIN and Container.SUPPORTS_LIMIT_OFFSET.

PostgreSQL knows the INHERITS concept, but as of now it is not fully supported.

See Also:
"The SUPPORTS_* constants."

getSequenceCurrentValue

public java.lang.String getSequenceCurrentValue(Sequence seq)
                                         throws PObjSQLException
Returns the current value of the given sequence.

Throws:
PObjSQLException - if any database error occurs.

getSequenceNextValue

public java.lang.String getSequenceNextValue(Sequence seq)
                                      throws PObjSQLException
Returns a new value of the given sequence.

Throws:
PObjSQLException - if any database error occurs.

insertObject

public java.lang.String insertObject(PObject obj)
                              throws PObjConstraintException,
                                     PObjSQLException
Inserts the given object into the database.

Throws:
PObjConstraintException - if a database constraint will be violated.
PObjSQLException - if any other database error occurs.