|
Business Components | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--oracle.jbo.server.BaseSQLBuilderImpl | +--oracle.jbo.server.OracleSQLBuilderImpl
Oracle-specific implementation of the SQLBuilder interface.
Field Summary |
Type | Field |
---|---|
protected static java.lang.String |
ORACLE_ROWID_COLUMN
|
Fields inherited from interface oracle.jbo.server.SQLBuilder |
BINDING_STYLE_JDBC, BINDING_STYLE_ORACLE, BINDING_STYLE_UNKNOWN,
DML_DELETE, DML_INSERT, DML_UPDATE |
Constructor Summary |
Type | Constructor |
---|---|
protected |
OracleSQLBuilderImpl()
This is a singleton class |
Method Summary |
Type | Method |
---|---|
protected static java.lang.String |
addSqlTypeText(java.lang.String sqlText,
java.lang.String inputType)
helper for getTableList |
protected int |
bindWhereClause(EntityImpl entityContext,
java.sql.PreparedStatement stmt,
AttributeDefImpl[] keyCols,
java.lang.Object rowid,
int bindIndex)
Bind the Primary key values for the designated Statement. |
protected java.lang.StringBuffer |
buildDeleteStatement(EntityImpl entityContext,
java.lang.String sinkName,
java.lang.String sinkAlias,
AttributeDefImpl[] keyCols)
Construct a SQL INSERT statement |
protected java.lang.StringBuffer |
buildInsertStatement(EntityImpl entityContext,
java.lang.String sinkName,
java.lang.String sinkAlias,
AttributeDefImpl[] cols,
AttributeDefImpl[] keyCols,
AttributeDefImpl[] retrCols,
AttributeDefImpl[] retrKeyCols,
boolean batchMode)
Construct a SQL INSERT statement |
protected void |
buildSelectString(DBTransactionImpl trans,
java.lang.StringBuffer buffer,
java.lang.String sourceName,
java.lang.String sourceAlias,
AttributeDefImpl[] attrs,
boolean withIntoClause,
int bindingStyle)
Construct a SQL SELECT statement for the Entity into the designated Buffer. |
protected java.lang.StringBuffer |
buildUpdateStatement(EntityImpl entityContext,
java.lang.String sinkName,
java.lang.String sinkAlias,
AttributeDefImpl[] cols,
AttributeDefImpl[] keyCols,
AttributeDefImpl[] retrCols,
AttributeDefImpl[] retrKeyCols,
boolean batchMode)
DOCTD: Method declaration TODO: KM _ don't like the fact that this requires an entitydef |
protected void |
buildWhereClause(EntityImpl entityContext,
java.lang.StringBuffer buffer,
AttributeDefImpl[] keyCols,
java.lang.Object rowid)
Construct a SQL WHERE clause for the Entity into the designated Buffer, based upon the Source Columns. |
void |
doEntityDML(EntityImpl entityContext,
int operation,
TransactionEvent e)
Performs the appropriate SQL Data Manipulation Language (DML) operations on the database to reflect an update, delete or insert operation on an Entity Object. |
void |
doEntitySelect(EntityImpl entityContext,
boolean lock)
Perform the appropriate SQL operations to execute a select operation on an Entity Object. |
java.lang.Object[] |
doLoadBulkFromResultSet(AttributeDefImpl[] attrDefs,
int attrIndex,
java.sql.ResultSet rs,
int index,
DBTransactionImpl trans)
Loads an array of objects from a result set. |
java.lang.Object |
doLoadFromResultSet(java.lang.Object theTypeFactory,
java.lang.Object theElemFactory,
java.lang.Class theJavaType,
byte attrLoad,
java.sql.ResultSet rs,
int index,
DBTransactionImpl trans)
Loads an object from a result set. |
java.lang.Object |
doLoadFromStatement(java.lang.Object theTypeFactory,
java.lang.Object theElemFactory,
java.lang.Class theJavaType,
java.sql.PreparedStatement ps,
int index,
Transaction trans)
Loads an object from a result set. |
void |
doPreparedStatementDefineColumnType(java.sql.PreparedStatement ps,
int colnum,
int sqltype)
Performs the equivalent of defineColumnType() on a prepared statement. |
void |
doPreparedStatementDefines(java.sql.PreparedStatement stmt,
AttributeDefImpl[] columns)
Performs the equivalent of clearDefines() on a prepared statement. |
void |
doStatementSetBindingStyle(java.sql.Statement ps,
int bindingStyle)
Sets the binding style for the statement. |
void |
doStatementSetBindingStyleDefault(java.sql.Statement ps)
|
void |
doStatementSetRowPrefetch(java.sql.Statement ps,
int prefetchSize)
Performs the equivalent of setRowPrefetch() on a statement. |
void |
executeBatch(java.sql.PreparedStatement stmt)
|
java.lang.Object |
generatePKBasedRef(EntityImpl entityContext)
Initial (temporay) value for ROWID, so that entity can be added in cache TODO: this is an awkward piece of non-generic JDBC - not sure how to emulate rowids in the generic case |
java.lang.Object[] |
generateRefAndOID(EntityImpl entityContext)
Generates an object Ref and OID for an Entity Object. |
java.lang.String |
getBaseTable(java.sql.Connection conn,
java.lang.String schema,
java.lang.String name)
unroll any synonyms that may be present, and get the real objectname |
protected java.lang.String |
getColumnNameWithFormatForQuery(java.lang.String colName,
AttributeDef attrDef,
int sqltype)
|
com.sun.java.util.collections.ArrayList |
getConstraintsList(java.sql.Connection conn,
java.lang.String catalog,
java.lang.String schema,
java.lang.String table)
return vector of with constraint details for this table where each detail is in a String array with this structure: 0 String owner |
java.lang.String |
getDbType()
returns a string uniquely identifying this type of SQLBuilder. |
int |
getDefaultBindingStyle()
unless overridden, the binding style is set to JDBC (Oracle versions change this) |
static SQLBuilder |
getInterface()
Gets the singleton instance of this class. |
protected java.lang.String |
getJDBCDriverClassName()
concrete implementations of SQLBuilder must elect a default driver name |
java.lang.String |
getPersistManagerClassName()
Returns the name of default PersistManager class name. |
protected java.lang.Object |
getROWID(EntityImpl entityContext)
Get the ROWID attribute. |
java.util.Vector |
getSchemaList(java.sql.Connection connection)
return a list of schemas for this database (note that for Oracle this is synonymous with users) |
protected java.lang.String |
getSqlVariantLockTrailer()
This defines the string that will be post-fixed to SQL ststements to have the rows locked - if the DB is incapable of this then is should return null. |
protected static java.lang.String |
getTableListSqlStatement(java.lang.String defaultUserName,
java.lang.String userName,
boolean bTable,
boolean bAlias,
boolean bView,
boolean bSnap,
boolean bCount)
helper for getTableList |
com.sun.java.util.collections.ArrayList |
getTables(java.sql.Connection conn,
java.lang.String defaultUserName,
java.lang.String userName,
boolean bTable,
boolean bAlias,
boolean bView,
boolean bSnap)
return a list of tables visible in this connection |
java.lang.String |
getTypeMapName()
Returns a String identifying the preferred type map to use. |
java.lang.String |
getVersion()
Gets a string describing the version of this implentation of this interface. |
boolean |
isDataSourceJTABased(javax.sql.DataSource ds)
|
boolean |
isStreamType(int sqlTypeId)
Provides streaming support. |
javax.sql.DataSource |
lookupDataSource(java.lang.String nsUrl,
java.lang.String nsUser,
java.lang.String nsPasswd,
java.lang.String dataSourceName)
|
void |
releaseSavePoint(java.sql.Connection conn,
java.lang.String id)
|
void |
rollbackToSavepoint(java.sql.Connection conn,
java.lang.String id)
rollback to SAVEPOINT - if possible |
void |
setSavepoint(java.sql.Connection conn,
java.lang.String id)
issue a SAVEPOINT - if possible |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static final java.lang.String ORACLE_ROWID_COLUMN
Constructor Detail |
protected OracleSQLBuilderImpl()
Method Detail |
public static SQLBuilder getInterface()
public java.lang.String getVersion()
SQLBuilder
getVersion
in class BaseSQLBuilderImpl
public java.lang.String getDbType()
SQLBuilder
getDbType
in class BaseSQLBuilderImpl
public java.lang.String getTypeMapName()
SQLBuilder
getTypeMapName
in class BaseSQLBuilderImpl
public java.lang.String getPersistManagerClassName()
SQLBuilder
getPersistManagerClassName
in class BaseSQLBuilderImpl
public int getDefaultBindingStyle()
BaseSQLBuilderImpl
getDefaultBindingStyle
in class BaseSQLBuilderImpl
public void executeBatch(java.sql.PreparedStatement stmt) throws java.sql.SQLException
executeBatch
in class BaseSQLBuilderImpl
public void doEntityDML(EntityImpl entityContext, int operation, TransactionEvent e)
SQLBuilder
Note: this method is subject to change.
doEntityDML
in class BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
enrt
- the Entity Object.operation
- one of DML_INSERT, DML_UPDATE, or DML_DELETE.e
- the transaction.public void doEntitySelect(EntityImpl entityContext, boolean lock)
SQLBuilder
Note: this method is subject to change.
doEntitySelect
in class BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
enrt
- the Entity Object.lock
- if true, a "SELECT for UPDATE" statement is used.public void doStatementSetRowPrefetch(java.sql.Statement ps, int prefetchSize) throws java.sql.SQLException
SQLBuilder
doStatementSetRowPrefetch
in class BaseSQLBuilderImpl
public void doStatementSetBindingStyle(java.sql.Statement ps, int bindingStyle)
SQLBuilder
doStatementSetBindingStyle
in class BaseSQLBuilderImpl
public void doStatementSetBindingStyleDefault(java.sql.Statement ps)
doStatementSetBindingStyleDefault
in class BaseSQLBuilderImpl
public void doPreparedStatementDefineColumnType(java.sql.PreparedStatement ps, int colnum, int sqltype) throws java.sql.SQLException
SQLBuilder
doPreparedStatementDefineColumnType
in class BaseSQLBuilderImpl
public void doPreparedStatementDefines(java.sql.PreparedStatement stmt, AttributeDefImpl[] columns)
SQLBuilder
doPreparedStatementDefines
in class BaseSQLBuilderImpl
public java.lang.Object doLoadFromResultSet(java.lang.Object theTypeFactory, java.lang.Object theElemFactory, java.lang.Class theJavaType, byte attrLoad, java.sql.ResultSet rs, int index, DBTransactionImpl trans)
SQLBuilder
Note: this method is subject to change.
doLoadFromResultSet
in class BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
theTypeFactory
- a custom factory to be used for constructing new instances.index
- the index of the object to be loaded.public java.lang.Object[] doLoadBulkFromResultSet(AttributeDefImpl[] attrDefs, int attrIndex, java.sql.ResultSet rs, int index, DBTransactionImpl trans)
SQLBuilder
Note: this method is subject to change.
doLoadBulkFromResultSet
in
class BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
index
- the index of the object to be loaded.public java.lang.Object doLoadFromStatement(java.lang.Object theTypeFactory, java.lang.Object theElemFactory, java.lang.Class theJavaType, java.sql.PreparedStatement ps, int index, Transaction trans)
SQLBuilder
Note: this method is subject to change.
doLoadFromStatement
in class
BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
theTypeFactory
- a custom factory to be used for constructing new instances.index
- the index of the object to be loaded.public void setSavepoint(java.sql.Connection conn, java.lang.String id) throws java.sql.SQLException
SQLBuilder
setSavepoint
in class BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
id
- = the id for a savepointpublic void rollbackToSavepoint(java.sql.Connection conn, java.lang.String id) throws java.sql.SQLException
SQLBuilder
rollbackToSavepoint
in class BaseSQLBuilderImpl
oracle.jbo.server.SQLBuilder
id
- = the id for a savepointpublic void releaseSavePoint(java.sql.Connection conn, java.lang.String id) throws java.sql.SQLException
protected java.lang.StringBuffer buildUpdateStatement(EntityImpl entityContext, java.lang.String sinkName, java.lang.String sinkAlias, AttributeDefImpl[] cols, AttributeDefImpl[] keyCols, AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols, boolean batchMode)
sinkName
- cols
- keyCols
- retrCols
- retrKeyCols
- protected int bindWhereClause(EntityImpl entityContext, java.sql.PreparedStatement stmt, AttributeDefImpl[] keyCols, java.lang.Object rowid, int bindIndex) throws java.sql.SQLException
For now it's private. We'll only consider it public when we sort out all of the issues with Sources/Sinks.
The presence or absence of the ROWID value determines whether the ROWID will be used for Row access.
bindWhereClause
in
class BaseSQLBuilderImpl
stmt
- the statement to bind the columns to.keyCols
- the Primary key columns.rowid
- the ROWID for the ROW if known.bindIndex
- the baseline idx for performing the bind
operations.protected java.lang.Object getROWID(EntityImpl entityContext)
getROWID
in class BaseSQLBuilderImpl
protected void buildWhereClause(EntityImpl entityContext, java.lang.StringBuffer buffer, AttributeDefImpl[] keyCols, java.lang.Object rowid)
For now it's private. We'll only consider it public when we sort out all of the issues with Sources/Sinks.
The presence or absence of the ROWID value determines whether the ROWID will be used for Row access.
buildWhereClause
in class BaseSQLBuilderImpl
buffer
- the area into which the WHERE Clause will be placed.keyCols
- the Primary key columns.rowid
- the ROWID for the ROW if known.protected java.lang.StringBuffer buildInsertStatement(EntityImpl entityContext, java.lang.String sinkName, java.lang.String sinkAlias, AttributeDefImpl[] cols, AttributeDefImpl[] keyCols, AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols, boolean batchMode)
- protected java.lang.StringBuffer buildDeleteStatement(EntityImpl entityContext, java.lang.String sinkName, java.lang.String sinkAlias, AttributeDefImpl[] keyCols)
buildDeleteStatement
in class
BaseSQLBuilderImpl
- protected void buildSelectString(DBTransactionImpl trans, java.lang.StringBuffer buffer, java.lang.String sourceName, java.lang.String sourceAlias, AttributeDefImpl[] attrs, boolean withIntoClause, int bindingStyle)
buffer
- the area into which the SELECT statement will be placed.public java.lang.Object generatePKBasedRef(EntityImpl entityContext)
BaseSQLBuilderImpl
generatePKBasedRef
in class BaseSQLBuilderImpl
public java.lang.Object[] generateRefAndOID(EntityImpl entityContext)
SQLBuilder
generateRefAndOID
in class BaseSQLBuilderImpl
public boolean isStreamType(int sqlTypeId)
SQLBuilder
isStreamType
in class BaseSQLBuilderImpl
public java.util.Vector getSchemaList(java.sql.Connection connection) throws java.lang.Exception
getSchemaList
in class BaseSQLBuilderImpl
public com.sun.java.util.collections.ArrayList getTables(java.sql.Connection conn, java.lang.String defaultUserName, java.lang.String userName, boolean bTable, boolean bAlias, boolean bView, boolean bSnap) throws java.lang.Exception
SQLBuilder
getTables
in class BaseSQLBuilderImpl
protected static java.lang.String getTableListSqlStatement(java.lang.String defaultUserName, java.lang.String userName, boolean bTable, boolean bAlias, boolean bView, boolean bSnap, boolean bCount)
protected static java.lang.String addSqlTypeText(java.lang.String sqlText, java.lang.String inputType)
public com.sun.java.util.collections.ArrayList getConstraintsList(java.sql.Connection conn, java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException
SQLBuilder
1 String constraint_name
2 String constraint_type
3 String table_name
4 String search_condition
5 Integer delete_rule (cascade)
6 Integer status (enabled)
7 Integerdeferrable
8 Integer deferred
9 Integer validated
10 String column_name
11 Integer position
12 String fkname
13 String fkother <>
getConstraintsList
in class BaseSQLBuilderImpl
public java.lang.String getBaseTable(java.sql.Connection conn, java.lang.String schema, java.lang.String name) throws java.sql.SQLException
SQLBuilder
getBaseTable
in class BaseSQLBuilderImpl
protected java.lang.String getJDBCDriverClassName()
BaseSQLBuilderImpl
getJDBCDriverClassName
in class BaseSQLBuilderImpl
public javax.sql.DataSource lookupDataSource(java.lang.String nsUrl, java.lang.String nsUser, java.lang.String nsPasswd, java.lang.String dataSourceName) throws JboException
lookupDataSource
in class BaseSQLBuilderImpl
public boolean isDataSourceJTABased(javax.sql.DataSource ds)
isDataSourceJTABased
in class BaseSQLBuilderImpl
protected java.lang.String getColumnNameWithFormatForQuery(java.lang.String colName, AttributeDef attrDef, int sqltype)
getColumnNameWithFormatForQuery
in class BaseSQLBuilderImpl
protected java.lang.String getSqlVariantLockTrailer()
BaseSQLBuilderImpl
getSqlVariantLockTrailer
in class BaseSQLBuilderImpl
|
Business Components | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |