de.mguennewig.pobjects.jdbc
Class OracleContainer

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

public class OracleContainer
extends JdbcContainer

Container implementation for Oracle databases.

This implementation uses a type table instead of Oracle's native inheritance support.

Author:
Michael Günnewig
See Also:
Oracle

Field Summary
static int DEFAULT_PORT
          Oracle default database port.
 
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
OracleContainer(java.sql.Connection conn, PObjDictionary dict, java.lang.String schema)
          Creates a container with a specified connection to a DBMS, which must denote an Oracle compatible DBMS.
OracleContainer(PObjDictionary dict, java.lang.String schema)
          Creates a container without a connection to an Oracle DB.
OracleContainer(java.lang.String hostname, java.lang.Integer port, java.lang.String sid, 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.util.Properties getConnectProperties()
          
 java.lang.String getConnectURL(java.lang.String hostname, java.lang.Integer port, java.lang.String sid)
          
static boolean getForceEncryption()
          Returns whether a new created container will enforce an encrypted connection to the Oracle 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.
 EvalContext newEvalContext(int numColumns)
          
static void setForceEncryption(boolean encrypt)
          Sets whether a new created container will enforce an encrypted connection to the Oracle database.
 
Methods inherited from class de.mguennewig.pobjects.jdbc.JdbcContainer
addArguments, addParameter, beginTransaction, close, commitTransaction, deleteAll, deleteAll, deleteObject, deleteRecord, getConnection, getObject, insertRecord, mapClassDeclToPClassId, mapPClassIdToClassDecl, 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
 

Field Detail

DEFAULT_PORT

public static final int DEFAULT_PORT
Oracle default database port.

See Also:
Constant Field Values
Constructor Detail

OracleContainer

public OracleContainer(PObjDictionary dict,
                       java.lang.String schema)
Creates a container without a connection to an Oracle DB.


OracleContainer

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

OracleContainer

public OracleContainer(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 an Oracle compatible DBMS.

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

Throws:
java.sql.SQLException
Method Detail

getForceEncryption

public static final boolean getForceEncryption()
Returns whether a new created container will enforce an encrypted connection to the Oracle database.


setForceEncryption

public static void setForceEncryption(boolean encrypt)
Sets whether a new created container will enforce an encrypted connection to the Oracle database.


getConnectURL

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

Specified by:
getConnectURL in class JdbcContainer

getConnectProperties

public java.util.Properties getConnectProperties()

Overrides:
getConnectProperties in class JdbcContainer

getCapabilities

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

All Oracle versions support Container.SUPPORTS_ORACLE_JOIN, but Container.SUPPORTS_SQL99_JOIN needs at least version 8.

All Oracle versions seem to require Container.USE_STREAM_TO_INSERT_LOB, or you will have to use their own implementations.

The INHERITS concept is known, but not supported by this interface.

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.

newEvalContext

public EvalContext newEvalContext(int numColumns)

Specified by:
newEvalContext in interface Container
Overrides:
newEvalContext in class JdbcContainer