Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 2 (11.1.2.3.0)

E17483-04


oracle.jbo.server
Interface SQLBuilder

All Known Implementing Classes:
BaseSQLBuilderImpl, DB2SQLBuilderImpl, OLiteSQLBuilderImpl, OracleSQLBuilderImpl, SQL92SQLBuilderImpl, SQLServerSQLBuilderImpl, WLSQLBuilderImpl

public interface SQLBuilder

Internal: Applications should not use this interface.

Note: This interface is subject to change.

This interface is used by View Objects to construct SQL statements that create, retrieve, update and delete table rows based on the state of the cache.

Since:
JDeveloper 3.0

Field Summary
static int BINDING_STYLE_JDBC
          Constant used to specify JDBC binding style while binding parameters to a statement object.
static int BINDING_STYLE_ORACLE
          Constant used to specify Oracle binding style while binding parameters to a statement object.
static int BINDING_STYLE_ORACLE_NAME
          Constant used to specify Oracle Named Parameter binding style while binding parameters to a statement object.
static int BINDING_STYLE_UNKNOWN
          Constant used to specify "Unknown" binding style while binding parameters to a statement object.
static int DML_DELETE
          Constant used to specify the DML mode to be DELETE.
static int DML_INSERT
          Constant used to specify the DML mode to be INSERT.
static int DML_UPDATE
          Constant used to specify the DML mode to be UPDATE.
static int MAX_COLUMN_IDENTIFIER_LEN
           
static java.lang.String RANGE_PAGE_BIND_HIGH_ROWNUM
           
static java.lang.String RANGE_PAGE_BIND_LOW_ROWNUM
           

 

Method Summary
 int bindDeleteStatement(EntityImpl entityContext, java.sql.PreparedStatement stmt)
          Binds the values in the entity attribute storage with the DELETE statement.
 void bindEffDtDateDayAddStatement(java.sql.PreparedStatement stmt, java.lang.Object date, int days)
          Bind the statement with the values required to compute a date that is 'x' number of days apart from the specified date
 int bindInsertStatement(EntityImpl entityContext, java.sql.PreparedStatement stmt, AttributeDefImpl[] cols, AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols, java.util.HashMap retrList, boolean batchMode)
          Binds the entity attribute storage with the parameters in the INSERT statement.
 void bindParametersForStmt(int bindingStyle, java.lang.Object[] params, java.sql.PreparedStatement stmt)
          Bind parameter values for a SQL execution.
 void bindRangePagingParams(java.sql.PreparedStatement stmt, ViewObjectImpl vo, int nextParamIndex, int rangeStart, int rangeSize)
           
 int bindUpdateStatement(EntityImpl entityContext, java.sql.PreparedStatement stmt, AttributeDefImpl[] cols, AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols, java.util.HashMap retrList, boolean batchMode)
          Binds the entity attribute storage with the parameters in the UPDATE statement.
 int bindWhereClause(EntityImpl entityContext, java.sql.PreparedStatement stmt, AttributeDefImpl[] retrKeyCols, java.lang.Object rowid, int bindIndex)
          Bind the Primary key values for the designated Statement.
 int bindWhereClause(EntityImpl entityContext, java.sql.PreparedStatement stmt, java.lang.Object rowid, int bindIndex)
          Bind the Primary key values for the designated Statement.
 void buildDefaultViewObjectFromClause(java.lang.StringBuffer fromClause, java.util.List eRefs)
          Deprecated. since 11.1.1. use buildDefaultViewObjectFromClause with 3 parameters instead.
 void buildDefaultViewObjectFromClause(java.lang.StringBuffer fromClause, java.util.List eRefs, BaseViewCriteriaManagerImpl vcManager)
          This method is used to generate the "from" clause if the following conditions are met: The View Object definition does not have an expert mode query The View Object definition is set to generate "from" clause during runtime, either in metadata or by calling ViewDefImpl.setFromClauseFlags(ViewDefImpl.CLAUSE_GENERATE_RT)
 java.util.HashMap buildDefaultViewObjectWhereClause(java.lang.StringBuffer whereClause, java.util.List eRefs, java.util.List forcedERefs, EntityReference[][] newEntRefsArr, boolean isInlineViewForFroms)
          This method is used to generate the "where" clause if the following conditions are met: The View Object definition does not specify "where" clause The View Object definition is set to generate "where" clause during runtime, either in metadata or by calling ViewDefImpl.setWhereClauseFlags(ViewDefImpl.CLAUSE_GENERATE_RT)
 java.lang.StringBuffer buildDeleteStatement(EntityImpl entityContext)
          Build a DELETE SQL for the Entity Object.
 java.lang.String buildEffDtDateDayAddStatement()
          Returns a statement that returns a date that is 'x' number of days apart from the specified date.
 java.lang.StringBuffer buildInsertStatement(EntityImpl entityContext, AttributeDefImpl[] cols, AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols, boolean batchMode)
          Build a INSERT SQL for the Entity Object skipping non-persistent values.
 java.lang.String buildRangePagingQuery(ViewObjectImpl vo, java.lang.String qry, int noUserParams)
           
 void buildSelectList(java.lang.StringBuffer buffer, AttributeDefImpl[] attrs, java.lang.String sourceAlias, boolean forViewObject)
          Build a list of columns that could be used in a SELECT statement.
 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.
 java.lang.StringBuffer buildUpdateStatement(EntityImpl entityContext, AttributeDefImpl[] cols, AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols, boolean batchMode)
          Build a UPDATE SQL for the Entity Object skipping non-persistent values.
 void buildWhereClause(EntityImpl entityContext, java.lang.StringBuffer buffer, AttributeDefImpl[] keyCols, java.lang.Object rowid)
          Creates a WHERE clause containing the Primary Key columns passed to the method.
 java.lang.String checkTableNameForQuotes(java.lang.String tableName)
          Add quotes to any table name that may need it.
 boolean compareFetchedValue(EntityImpl entity, AttributeDefImpl ad, java.lang.Object cacheValue, java.lang.Object fetchedValue)
          Compare the cacheValue with fetchedValue and if they are equal return true This API is used when comparing cached entity with a faulted in entity.
 boolean containsTableAlias(java.lang.String clause, java.lang.String alias)
           
 java.lang.Object convertValueToStorageType(java.lang.Object value)
          This method is used to convert the Java type to a JDBC type so that it could be used to bind as a parameter for SQL execution.
 void doEntityDML(EntityImpl enrt, 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 e, boolean lock)
          Perform the appropriate SQL operations to execute a select operation on an Entity Object.
 void doEntitySelectForAltKey(EntityImpl e, int keyIndex, boolean lock)
           
 java.lang.Object[] doLoadBulkFromResultSet(AttributeDefImpl[] attrs, int attrIndex, java.sql.ResultSet rs, int rsIndex, 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 ps, AttributeDefImpl[] attrs)
          Defines the column types of the attributes based on the meta-data.
 void doRefreshSQL(EntityImpl entityContext, int operation, AttributeDefImpl[] columns, AttributeDefImpl[] keyCols)
          Refreshes the entity after an update on the database.
 void doRegisterDefaultDriver(java.lang.String url)
          Registers the JDBC driver associated with this type of JDBC connection.
 void doStatementSetBindingStyle(java.sql.Statement ps, int bindingStyle)
          Sets the binding style for the statement.
 void doStatementSetBindingStyleDefault(java.sql.Statement ps)
          Sets the binding style to the default value of the database type.
 void doStatementSetRowPrefetch(java.sql.Statement ps, int prefetchSize)
          Performs the equivalent of setRowPrefetch() on a statement.
 void executeBatch(java.sql.PreparedStatement stmt)
          Executes the PreparedStatement in batch mode.
 java.lang.Object generatePKBasedRef(EntityImpl entityContext)
          Generates a PK-Based REF for an Entity Object.
 java.lang.Object[] generateRefAndOID(EntityImpl e)
          Generates an object Ref and OID for an Entity Object.
 java.lang.Object generateRowID(EntityImpl e)
          Get the ROWID attribute.
 java.util.ArrayList<ViewCriteria> getANSIJoinVCs(java.util.List eRefs)
           
 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.
 java.lang.String getCappedQueryHitCountSQL(RowSet rs, long cap)
           
 java.lang.String getClauseForDateLiteral(java.util.Date date)
          Creates a database platform specific clause for converting a date string literal to date datatype.
 java.util.Vector getConstraints(java.sql.Connection conn, java.lang.String catalog, java.lang.String schema, java.lang.String table)
          Return vector with constraint details for this table.
 java.util.ArrayList getConstraintsList(java.sql.Connection conn, java.lang.String catalog, java.lang.String schema, java.lang.String table)
          Return vector with constraint details for this table where each detail is in a String array with this structure: 0 String owner
 java.lang.String getCreateSequenceInsertTriggerSQL(java.lang.String triggerName, java.lang.String tableName, java.util.ArrayList sequenceNames, java.util.ArrayList colNames)
          Returns a SQL statement that creates a trigger that updates a column with the value from a sequence upon the creation of a new row.
 java.lang.String getCreateSequenceSQL(java.lang.String sequenceName, int startVal)
          Returns a SQL statement that creates a Sequence with an initial value specified in the argument.
 java.sql.Timestamp getCurrentDbTime(java.sql.Connection conn)
          Returns the current time from the Database.
 java.util.ArrayList getDBOperationList(java.sql.Connection connection, java.lang.String userName, java.lang.String packageFilter, java.lang.String operationFilter)
          Return a list of packages visible in this connection.
 java.util.ArrayList getDBPackageList(java.sql.Connection conn, java.lang.String userName, java.lang.String packageFilter)
          Return a list of packages visible in this connection.
 java.lang.String getDbType()
          Returns a string uniquely identifying this type of SQLBuilder.
 int getDefaultBindingStyle()
          Returns a constant identifying the best binding style for this sort of SQL (see the BINDINGSTYLE constants).
 java.lang.String getDropSequenceSQL(java.lang.String sequenceName)
          Returns a SQL statement that drops a specified Sequence.
 java.lang.String getDropTableSQL(java.lang.String dbObjectName)
          Returns a SQL statement that drops a specified table.
 java.lang.String getEscapeClause(boolean forQuery)
          Returns the escape clause to be used with LIKE wildcard character escaping.
 java.lang.String getFormattedLHSCompareFragment(ViewObject vo, ViewCriteria vc, AttributeDef attrDef, int sqlType, java.lang.String lhs, java.lang.Object rhs)
          This method provides a formatted left-hand-comparator fragment of a comparision in a where clause for the given column.
 java.lang.String getFormattedRHSCompareFragment(ViewObject vo, ViewCriteria vc, AttributeDef attrDef, int sqlType, java.lang.String rhs)
          This method provides a formatted right-hand-comparator fragment of a comparision in a where clause for the given column.
 int getMaxTableNameLength(java.sql.Connection conn)
          Return the maximum length of a table name for the Database connection.
 java.util.ArrayList getNestedTables(java.sql.Connection conn)
          Returns a list of nested tables in this connection.
 java.lang.String getPersistManagerClassName()
          Returns the name of default PersistManager class name.
 java.lang.String getQueryHitCountSQL(RowSet rs)
          Returns a SQL statement to estimate the number of rows effected by the query using the rowset values.
 java.util.Vector getSchemaList(java.sql.Connection conn)
          Return a list of schemas for this database (note that for Oracle this is synonymous with users)
 java.util.ArrayList getSchemas(java.sql.Connection conn)
          Return a list of schemas for this database (note that for Oracle this is synonymous with users)
 java.lang.String getStringConcatOper(boolean bIncludeSpaces)
          Returns a String concatenation operator for query clause generation.
 java.util.Vector getTableList(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.util.Vector getTableList(java.sql.Connection conn, java.lang.String defaultUserName, java.lang.String userName, boolean bTable, boolean bAlias, boolean bView, boolean bSnap, boolean bIncludeNested)
          Return a list of tables visible in this connection.
 java.util.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.util.ArrayList getTables(java.sql.Connection conn, java.lang.String defaultUserName, java.lang.String userName, boolean bTable, boolean bAlias, boolean bView, boolean bSnap, boolean bIncludeNested)
          Return a list of tables visible in this connection.
 java.util.ArrayList getTables(java.sql.Connection conn, java.lang.String defaultUserName, java.lang.String userName, java.lang.String nameFilter, boolean bTable, boolean bAlias, boolean bView, boolean bSnap)
          Return a list of tables visible in this connection.
 java.util.ArrayList getTables(java.sql.Connection conn, java.lang.String defaultUserName, java.lang.String userName, java.lang.String nameFilter, boolean bTable, boolean bAlias, boolean bView, boolean bSnap, boolean bIncludeNested)
          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.
 ViewCriteriaAdapter getViewCriteriaAdapter()
          Returns a ViewCriteriaAdapter for the SQLBuilder object.
 java.lang.String getWildCardEscapeVal(java.lang.String val, boolean isBindVarVal, boolean forQuery)
          Process val and returns a substitued value to use in a SQL LIKE predicate to handle wildcard value escaping.
 void handleSQLException(JboSQLException jboSqlEx)
          Performs extra processing before re-throwing JboSQLException.
 boolean invalidDatumFactoryUsage(java.lang.String colType, int id, java.lang.Class clz)
          Returns false only for types where raw-bytes may be used to create the desired attribute values while fetching data from jdbc.
 boolean isCharType(int type)
          Tests if a type is character.
 boolean isConnectionAlive(java.sql.Connection conn)
          Detects if a connection is alive.
 boolean isDataSourceJTABased(javax.sql.DataSource ds)
          Checks if the DataSource is JTA-enabled.
 boolean isDisplayBindValueUI()
          For Oracle database the test SQL wizards provide additional functionality to bind the parameters with test values.
 boolean isNCharType(java.sql.Statement stmt, int index)
          Tests if the select statement at a given column index corresponds to an international character column.
 boolean isNewLineAllowedInSQL(java.sql.Connection conn)
          Checks if the JDBC driver supports new line character in SQL statements.
 boolean isNumericType(int type)
          Tests if a type is numeric.
 boolean isSQLRecoverableException(java.lang.Exception ex)
          Checks if the exception is recoverable such that a retry after obtaining a new connection may succeed.
 boolean isStreamType(int sqlTypeId)
          Check if a given type provides streaming support.
 void jdbcClientSideSecurity(java.util.Properties info, java.util.Hashtable env)
          Populates the properties with known security attributes found in the environment.
 javax.sql.DataSource lookupDataSource(java.lang.String nsUrl, java.lang.String nsUser, java.lang.String nsPasswd, java.lang.String dataSourceName)
          Performs a JNDI lookup for the datasource.
 void populateCompOpers()
           
 void populateJboTypeMapEntries()
          Populates the system typemap table with entries appropriate for the JDBC implementation.
 java.lang.String processClauseForSubQuery(java.lang.String clause, EntityReference[] entRefs, java.lang.String suffix, boolean isSQLExpr, boolean[] isModified)
           
 java.lang.String processClauseReplaceTableAliases(java.lang.String clause, RowReference[] origEntRefs, RowReference[] newEntRefs, boolean isSQLExpr, boolean[] isModified)
           
 void processException(java.lang.String errorCode, java.lang.Exception sqlEx, java.lang.Object[] params)
          Handle SQL exceptions by wrapping into SQLStmtException or JboException.
 ADFDatabaseChangeListener registerDatabaseChangeListener(QueryCollection listener, java.sql.Connection conn, java.sql.Statement stmt)
          Register a Query Collection to listen to database data change events.
 void releaseSavepoint(java.sql.Connection conn, java.lang.String id)
          Release SAVEPOINT if possible.
 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.
 void setSessionTimeZone(java.sql.Connection conn, java.lang.String regionName)
          Sets the user session timezone on the Connection object.
 boolean shouldPutJoinConstraintInFromClause()
          Checks if the FROM clause allows view criteria.
 boolean supportsReturningClause()
          Checks if the database supports the Returning clause.
 boolean supportsRowNumQuery()
          Checks if the database supports "rownum" identifier.

 

Field Detail

DML_INSERT

static final int DML_INSERT
Constant used to specify the DML mode to be INSERT.
See Also:
doEntityDML(EntityImpl, int, TransactionEvent), Constant Field Values

DML_UPDATE

static final int DML_UPDATE
Constant used to specify the DML mode to be UPDATE.
See Also:
doEntityDML(EntityImpl, int, TransactionEvent), Constant Field Values

DML_DELETE

static final int DML_DELETE
Constant used to specify the DML mode to be DELETE.
See Also:
doEntityDML(EntityImpl, int, TransactionEvent), Constant Field Values

BINDING_STYLE_UNKNOWN

static final int BINDING_STYLE_UNKNOWN
Constant used to specify "Unknown" binding style while binding parameters to a statement object.
See Also:
doStatementSetBindingStyle(Statement, int), Constant Field Values

BINDING_STYLE_JDBC

static final int BINDING_STYLE_JDBC
Constant used to specify JDBC binding style while binding parameters to a statement object.
See Also:
doStatementSetBindingStyle(Statement, int), Constant Field Values

BINDING_STYLE_ORACLE

static final int BINDING_STYLE_ORACLE
Constant used to specify Oracle binding style while binding parameters to a statement object.
See Also:
doStatementSetBindingStyle(Statement, int), Constant Field Values

BINDING_STYLE_ORACLE_NAME

static final int BINDING_STYLE_ORACLE_NAME
Constant used to specify Oracle Named Parameter binding style while binding parameters to a statement object.
See Also:
doStatementSetBindingStyle(Statement, int), Constant Field Values

MAX_COLUMN_IDENTIFIER_LEN

static final int MAX_COLUMN_IDENTIFIER_LEN
See Also:
Constant Field Values

RANGE_PAGE_BIND_LOW_ROWNUM

static final java.lang.String RANGE_PAGE_BIND_LOW_ROWNUM
See Also:
Constant Field Values

RANGE_PAGE_BIND_HIGH_ROWNUM

static final java.lang.String RANGE_PAGE_BIND_HIGH_ROWNUM
See Also:
Constant Field Values

Method Detail

getVersion

java.lang.String getVersion()
Gets a string describing the version of this implentation of this interface.
Returns:
a String containing the version.

getDbType

java.lang.String getDbType()
Returns a string uniquely identifying this type of SQLBuilder. Examples are: "Oracle", "OLite", "SQL92".
Returns:
a String containing the Database type.

getNestedTables

java.util.ArrayList getNestedTables(java.sql.Connection conn)
                                    throws java.sql.SQLException
Returns a list of nested tables in this connection.

Note: this method is subject to change.

Parameters:
conn - the connection.
Returns:
null if the platform doesn't support nested tables.
Throws:
java.sql.SQLException

getTypeMapName

java.lang.String getTypeMapName()
Returns a String identifying the preferred type map to use.
Returns:
a String containing the type map name.

getPersistManagerClassName

java.lang.String getPersistManagerClassName()
Returns the name of default PersistManager class name.
Returns:
a String containing the Class name.

getDefaultBindingStyle

int getDefaultBindingStyle()
Returns a constant identifying the best binding style for this sort of SQL (see the BINDINGSTYLE constants).

Note: this method is subject to change.

Returns:
an int value constant.

doRegisterDefaultDriver

void doRegisterDefaultDriver(java.lang.String url)
                             throws java.sql.SQLException
Registers the JDBC driver associated with this type of JDBC connection.
Parameters:
url - JDBC Connection url.
Throws:
java.sql.SQLException

doEntityDML

void doEntityDML(EntityImpl enrt,
                 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.

Note: this method is subject to change.

Parameters:
enrt - the Entity Object.
operation - one of DML_INSERT, DML_UPDATE, or DML_DELETE.
e - the transaction.

buildInsertStatement

java.lang.StringBuffer buildInsertStatement(EntityImpl entityContext,
                                            AttributeDefImpl[] cols,
                                            AttributeDefImpl[] retrCols,
                                            AttributeDefImpl[] retrKeyCols,
                                            boolean batchMode)
Build a INSERT SQL for the Entity Object skipping non-persistent values. If there are attributes in the Entity Object that need to be fetched after the INSERT succeeds, a CallableStatement is created to fetch those values.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
cols - the columns to be included in the INSERT statement.
retrCols - the Columns whose values need to be fetched after the INSERT succeeds.
retrKeyCols - the Columns that are used as Keys to fetch post-insert values.
batchMode - a flag to indicate if the INSERT statement needs to be optimized for batch mode.
Returns:
a StringBuffer object containing the INSERT statement.

buildUpdateStatement

java.lang.StringBuffer buildUpdateStatement(EntityImpl entityContext,
                                            AttributeDefImpl[] cols,
                                            AttributeDefImpl[] retrCols,
                                            AttributeDefImpl[] retrKeyCols,
                                            boolean batchMode)
Build a UPDATE SQL for the Entity Object skipping non-persistent values. If there are attributes in the Entity Object that need to be fetched after the UPDATE succeeds, a CallableStatement is created to fetch those values.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
cols - the columns to be included in the UPDATE statement.
retrCols - the Columns whose values need to be fetched after the UPDATE succeeds.
retrKeyCols - the Columns that are used as Keys to fetch post-update values.
batchMode - a flag to indicate if the UPDATE statement needs to be optimized for batch mode.
Returns:
a StringBuffer object containing the UPDATE statement.

buildDeleteStatement

java.lang.StringBuffer buildDeleteStatement(EntityImpl entityContext)
Build a DELETE SQL for the Entity Object. The row is deleted from the table using the values of the Primary keys defined in the Entity.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
Returns:
a StringBuffer object containing the UPDATE statement.

buildSelectList

void buildSelectList(java.lang.StringBuffer buffer,
                     AttributeDefImpl[] attrs,
                     java.lang.String sourceAlias,
                     boolean forViewObject)
Build a list of columns that could be used in a SELECT statement.

Note: this method is subject to change.

Parameters:
buffer - the StringBuffer object to which the SELECT list is appended.
attrs - the list of attribute definitions to be considered for the SELECT list.
sourceAlias - the database object name that contains the attributes.

buildSelectString

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. This routine will construct a SQL SELECT statement in the StringBuffer passed. It does this by appending the various components of the SELECT statement into the buffer area.

Note: this method is subject to change.

Parameters:
trans - a reference to the transaction object.
buffer - the StringBuffer object to which the SELECT statement is appended.
sourceName - the database object from which the Columns are selected.
sourceAlias - the database object alias.
attrs - the attributes that are selected from the database object.
withIntoClause - a boolean that indicates if an INTO Clause needs to be generated.
bindingStyle - specifies if Oracle, Oracle named parameter or JDBC binding style is used in generating the parameter markers for the INTO clause.

bindInsertStatement

int bindInsertStatement(EntityImpl entityContext,
                        java.sql.PreparedStatement stmt,
                        AttributeDefImpl[] cols,
                        AttributeDefImpl[] retrCols,
                        AttributeDefImpl[] retrKeyCols,
                        java.util.HashMap retrList,
                        boolean batchMode)
                        throws java.sql.SQLException
Binds the entity attribute storage with the parameters in the INSERT statement.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
stmt - the statement handle executing the INSERT statement.
cols - the columns involved in the INSERT statement.
retrCols - the columns whose values need to be fetched after a successful insert.
retrKeyCols - the columns that act as a key to fetch the newly inserted values.
retrList - a map containing the references to store the fetched values.
batchMode - flag to indicate binding for batchMode.
Returns:
index of last bind variable set in this statement.
Throws:
java.sql.SQLException

bindUpdateStatement

int bindUpdateStatement(EntityImpl entityContext,
                        java.sql.PreparedStatement stmt,
                        AttributeDefImpl[] cols,
                        AttributeDefImpl[] retrCols,
                        AttributeDefImpl[] retrKeyCols,
                        java.util.HashMap retrList,
                        boolean batchMode)
                        throws java.sql.SQLException
Binds the entity attribute storage with the parameters in the UPDATE statement.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
stmt - the statement handle executing the UPDATE statement.
cols - the columns involved in the UPDATE statement.
retrCols - the columns whose values need to be fetched after a successful insert.
retrKeyCols - the columns that act as a key to fetch the newly inserted values.
retrList - a map containing the references to store the fetched values.
batchMode - flag to indicate binding for batchMode.
Returns:
index of last bind variable set in this statement.
Throws:
java.sql.SQLException

bindDeleteStatement

int bindDeleteStatement(EntityImpl entityContext,
                        java.sql.PreparedStatement stmt)
                        throws java.sql.SQLException
Binds the values in the entity attribute storage with the DELETE statement.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
stmt - the statement handle executing the DELETE statement.
Throws:
java.sql.SQLException

bindWhereClause

int bindWhereClause(EntityImpl entityContext,
                    java.sql.PreparedStatement stmt,
                    java.lang.Object rowid,
                    int bindIndex)
                    throws java.sql.SQLException
Bind the Primary key values for the designated Statement. This routine will perform the bind operation for each of the Primary Key columns.

The presence or absence of the ROWID value determines whether the ROWID will be used for Row access.

Note: this method is subject to change.

Parameters:
entityContext - the Entity row.
stmt - the statement to bind the columns to.
rowid - the ROWID for the row if known.
bindIndex - the baseline idx for performing the bind operations.
Returns:
index of last bind variable set in this statement.
Throws:
java.sql.SQLException

bindWhereClause

int bindWhereClause(EntityImpl entityContext,
                    java.sql.PreparedStatement stmt,
                    AttributeDefImpl[] retrKeyCols,
                    java.lang.Object rowid,
                    int bindIndex)
                    throws java.sql.SQLException
Bind the Primary key values for the designated Statement. This routine will perform the bind operation for each of the Primary Key columns.

The presence or absence of the ROWID value determines whether the ROWID will be used for Row access.

Note: this method is subject to change.

Parameters:
entityContext - the Entity row.
stmt - the statement to bind the columns to.
retrKeyCols - the Primary Key Cols for the Entity row.
rowid - the ROWID for the row if known.
bindIndex - the baseline idx for performing the bind operations.
Returns:
index of last bind variable set in this statement.
Throws:
java.sql.SQLException

doEntitySelect

void doEntitySelect(EntityImpl e,
                    boolean lock)
Perform the appropriate SQL operations to execute a select operation on an Entity Object.

Note: this method is subject to change. Note: this method is subject to change.

Parameters:
e - the Entity Object.
lock - if true, a "SELECT for UPDATE" statement is used.

doEntitySelectForAltKey

void doEntitySelectForAltKey(EntityImpl e,
                             int keyIndex,
                             boolean lock)

doStatementSetRowPrefetch

void doStatementSetRowPrefetch(java.sql.Statement ps,
                               int prefetchSize)
                               throws java.sql.SQLException
Performs the equivalent of setRowPrefetch() on a statement.
Parameters:
ps - the Statement object.
prefetchSize - the fetch size.
Throws:
java.sql.SQLException

doStatementSetBindingStyle

void doStatementSetBindingStyle(java.sql.Statement ps,
                                int bindingStyle)
Sets the binding style for the statement.
Parameters:
ps - the Statement object.
bindingStyle - valid values are BINDING_STYLE_JDBC, BINDING_STYLE_ORACLE, BINDING_STYLE_ORACLE_NAME.

doStatementSetBindingStyleDefault

void doStatementSetBindingStyleDefault(java.sql.Statement ps)
Sets the binding style to the default value of the database type. For Oracle database it is set to BINDING_STYLE_ORACLE and for non-oracle databases it is set to BINDING_STYLE_JDBC.

Note: this method is subject to change.

Parameters:
ps - the Statement object.

doPreparedStatementDefineColumnType

void doPreparedStatementDefineColumnType(java.sql.PreparedStatement ps,
                                         int colnum,
                                         int sqltype)
                                         throws java.sql.SQLException
Performs the equivalent of defineColumnType() on a prepared statement.

Note: this method is subject to change.

Parameters:
ps - the PreparedStatement object.
colnum - the column number.
sqltype - the type of the column.
Throws:
java.sql.SQLException

doPreparedStatementDefines

void doPreparedStatementDefines(java.sql.PreparedStatement ps,
                                AttributeDefImpl[] attrs)
Defines the column types of the attributes based on the meta-data.

Note: this method is subject to change.

Parameters:
ps - the PreparedStatement object.
attrs - the attribute definitions.

populateJboTypeMapEntries

void populateJboTypeMapEntries()
Populates the system typemap table with entries appropriate for the JDBC implementation.

Note: this method is subject to change.


populateCompOpers

void populateCompOpers()

isNumericType

boolean isNumericType(int type)
Tests if a type is numeric.
Parameters:
type - the type that needs to be checked.

isCharType

boolean isCharType(int type)
Tests if a type is character.
Parameters:
type - the type that needs to be checked.

isNCharType

boolean isNCharType(java.sql.Statement stmt,
                    int index)
Tests if the select statement at a given column index corresponds to an international character column. This method performs a valid check only for Oracle Database.
Parameters:
stmt - A select statement that has been executed
index - The position of the column to be tested for international character type

doLoadFromResultSet

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)
                                     throws DataCreationException
Loads an object from a result set.

Note: this method is subject to change.

Parameters:
theTypeFactory - a custom factory to be used for constructing new instances.
theElemFactory - currently unused.
theJavaType - the Java datatype of the Object to be created.
attrLoad - specifies if the load type is ATTR_LOAD_EACH, ATTR_LOAD_BULK or ATTR_LOAD_SKIP
rs - the resultset.
index - the index of the object to be loaded.
trans - the reference to the transaction object used to fetch the resultset.
Returns:
a reference to the object loaded.
Throws:
DataCreationException

doLoadBulkFromResultSet

java.lang.Object[] doLoadBulkFromResultSet(AttributeDefImpl[] attrs,
                                           int attrIndex,
                                           java.sql.ResultSet rs,
                                           int rsIndex,
                                           DBTransactionImpl trans)
                                           throws DataCreationException
Loads an array of objects from a result set.

Note: this method is subject to change.

Parameters:
attrs - the list of attributes to be loaded.
attrIndex - a particular attribute from the list - Currently unused.
rs - the ResultSet containing the objects.
rsIndex - the index of the object in the result set to be loaded.
trans - the reference to the transaction object used to fetch the resultset.
Returns:
a reference to the array of objects loaded.
Throws:
DataCreationException

doLoadFromStatement

java.lang.Object doLoadFromStatement(java.lang.Object theTypeFactory,
                                     java.lang.Object theElemFactory,
                                     java.lang.Class theJavaType,
                                     java.sql.PreparedStatement ps,
                                     int index,
                                     Transaction trans)
                                     throws DataCreationException
Loads an object from a result set.

Note: this method is subject to change.

Parameters:
theTypeFactory - a custom factory to be used for constructing new instances.
theElemFactory - currently unused.
theJavaType - the Java datatype of the Object to be created.
ps - the statement reference used to retrieve the Object.
index - the index of the object in the output list.
trans - the reference to the transaction object used to fetch the resultset.
Returns:
a reference to the object loaded.
Throws:
DataCreationException

setSavepoint

void setSavepoint(java.sql.Connection conn,
                  java.lang.String id)
                  throws java.sql.SQLException
Issue a SAVEPOINT if possible.
Parameters:
conn - the Connection used to create a savepoint.
id - the id for a savepoint.
Throws:
java.sql.SQLException

rollbackToSavepoint

void rollbackToSavepoint(java.sql.Connection conn,
                         java.lang.String id)
                         throws java.sql.SQLException
Rollback to SAVEPOINT if possible.
Parameters:
conn - the Connection used to rollback the savepoint.
id - the id for a savepoint
Throws:
java.sql.SQLException

releaseSavepoint

void releaseSavepoint(java.sql.Connection conn,
                      java.lang.String id)
                      throws java.sql.SQLException
Release SAVEPOINT if possible.
Parameters:
conn - the Connection used to release the savepoint.
id - the id for a savepoint
Throws:
java.sql.SQLException

generateRowID

java.lang.Object generateRowID(EntityImpl e)
Get the ROWID attribute.

The ROWID attribute can be used to gain faster access to the underyling database data.

Obtain the value for the ROWID attribute. If this entity doesn't support ROWID attributes, then return NULL. If, for some reason the value of the ROWID attribute isn't present, then return null.

Note: this method is subject to change.

Parameters:
e - the entity object reference.
Returns:
an Object containing the ROWID or null if generate ROWID fails.

generatePKBasedRef

java.lang.Object generatePKBasedRef(EntityImpl entityContext)
Generates a PK-Based REF for an Entity Object. This is used for an object table.

Note: this method is subject to change.

Parameters:
entityContext - the entity object reference.

generateRefAndOID

java.lang.Object[] generateRefAndOID(EntityImpl e)
Generates an object Ref and OID for an Entity Object. This is used for an object table.

Note: this method is subject to change.

Parameters:
e - the entity object reference.

isStreamType

boolean isStreamType(int sqlTypeId)
Check if a given type provides streaming support.

Note: this method is subject to change.

Parameters:
sqlTypeId - the type to check for streaming support.

getTables

java.util.ArrayList getTables(java.sql.Connection conn,
                              java.lang.String defaultUserName,
                              java.lang.String userName,
                              java.lang.String nameFilter,
                              boolean bTable,
                              boolean bAlias,
                              boolean bView,
                              boolean bSnap,
                              boolean bIncludeNested)
                              throws java.lang.Exception
Return a list of tables visible in this connection. Same as getTables(Connection, String, String, String, boolean, boolean, boolean, boolean) with an additional parameter to fetch nested tables. Nested tables are fetched only for Oracle database and OLite.

Note: this method is subject to change.

Parameters:
conn - the connection object.
defaultUserName - the user name of the connection. This is will also be treated as the schema name for non-oracle databases.
userName - the user name for which the tables need to be listed.
nameFilter - the filter for the name of the table to be listed.
bTable - flag to include Table objects in the list.
bAlias - flag to include Synonyms in the list - Oracle database only.
bView - flag to include View objects in the list.
bSnap - flag to include Materialized View objects in the list.
bIncludeNested - flag to include Nested table objects in the list.
Returns:
an ArrayList containing String objects.
Throws:
java.lang.Exception

getTables

java.util.ArrayList getTables(java.sql.Connection conn,
                              java.lang.String defaultUserName,
                              java.lang.String userName,
                              java.lang.String nameFilter,
                              boolean bTable,
                              boolean bAlias,
                              boolean bView,
                              boolean bSnap)
                              throws java.lang.Exception
Return a list of tables visible in this connection.

Note: this method is subject to change.

Parameters:
conn - the connection object.
defaultUserName - the user name of the connection. This is will also be treated as the schema name for non-oracle databases.
userName - the user name for which the tables need to be listed.
nameFilter - the filter for the name of the table to be listed.
bTable - flag to include Table objects in the list.
bAlias - flag to include Synonyms in the list - Oracle database only.
bView - flag to include View objects in the list.
bSnap - flag to include Materialized View objects in the list.
Returns:
an ArrayList containing String objects.
Throws:
java.lang.Exception

getTables

java.util.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
Return a list of tables visible in this connection. Same as getTables(Connection, String, String, String, boolean, boolean, boolean, boolean) with no filter on the table name.

Note: this method is subject to change.

Parameters:
conn - the connection object.
defaultUserName - the user name of the connection. This is will also be treated as the schema name for non-oracle databases.
userName - the user name for which the tables need to be listed.
bTable - flag to include Table objects in the list.
bAlias - flag to include Synonyms in the list - Oracle database only.
bView - flag to include View objects in the list.
bSnap - flag to include Materialized View objects in the list.
Returns:
an ArrayList containing String objects.
Throws:
java.lang.Exception

getTables

java.util.ArrayList getTables(java.sql.Connection conn,
                              java.lang.String defaultUserName,
                              java.lang.String userName,
                              boolean bTable,
                              boolean bAlias,
                              boolean bView,
                              boolean bSnap,
                              boolean bIncludeNested)
                              throws java.lang.Exception
Return a list of tables visible in this connection. Same as getTables(Connection, String, String, String, boolean, boolean, boolean, boolean) with no filter on the table name and an additional parameter to fetch nested tables. Nested tables are fetched only for Oracle database and OLite.

Note: this method is subject to change.

Parameters:
conn - the connection object.
defaultUserName - the user name of the connection. This is will also be treated as the schema name for non-oracle databases.
userName - the user name for which the tables need to be listed.
bTable - flag to include Table objects in the list.
bAlias - flag to include Synonyms in the list - Oracle database only.
bView - flag to include View objects in the list.
bSnap - flag to include Materialized View objects in the list.
bIncludeNested - flag to include Nested table objects in the list.
Returns:
an ArrayList containing String objects.
Throws:
java.lang.Exception

getTableList

java.util.Vector getTableList(java.sql.Connection conn,
                              java.lang.String defaultUserName,
                              java.lang.String userName,
                              boolean bTable,
                              boolean bAlias,
                              boolean bView,
                              boolean bSnap)
                              throws java.lang.Exception
Return a list of tables visible in this connection. Invokes getTables(Connection, String, String, boolean, boolean, boolean, boolean).

Note: this method is subject to change.

Parameters:
conn - the connection object.
defaultUserName - the user name of the connection. This is will also be treated as the schema name for non-oracle databases.
userName - the user name for which the tables need to be listed.
bTable - flag to include Table objects in the list.
bAlias - flag to include Synonyms in the list - Oracle database only.
bView - flag to include View objects in the list.
bSnap - flag to include Materialized View objects in the list.
Returns:
a Vector containing String objects.
Throws:
java.lang.Exception

getTableList

java.util.Vector getTableList(java.sql.Connection conn,
                              java.lang.String defaultUserName,
                              java.lang.String userName,
                              boolean bTable,
                              boolean bAlias,
                              boolean bView,
                              boolean bSnap,
                              boolean bIncludeNested)
                              throws java.lang.Exception
Return a list of tables visible in this connection. Invokes getTables(Connection, String, String, boolean, boolean, boolean, boolean, boolean).

Note: this method is subject to change.

Parameters:
conn - the connection object.
defaultUserName - the user name of the connection. This is will also be treated as the schema name for non-oracle databases.
userName - the user name for which the tables need to be listed.
bTable - flag to include Table objects in the list.
bAlias - flag to include Synonyms in the list - Oracle database only.
bView - flag to include View objects in the list.
bSnap - flag to include Materialized View objects in the list.
bIncludeNested - flag to include Nested table objects in the list.
Returns:
a Vector containing String objects.
Throws:
java.lang.Exception

getSchemas

java.util.ArrayList getSchemas(java.sql.Connection conn)
                               throws java.lang.Exception
Return a list of schemas for this database (note that for Oracle this is synonymous with users)

Note: this method is subject to change.

Returns:
an ArrayList containing String objects.
Throws:
java.lang.Exception

getSchemaList

java.util.Vector getSchemaList(java.sql.Connection conn)
                               throws java.lang.Exception
Return a list of schemas for this database (note that for Oracle this is synonymous with users)

Note: this method is subject to change.

Returns:
a Vector containing String objects.
Throws:
java.lang.Exception

getDBPackageList

java.util.ArrayList getDBPackageList(java.sql.Connection conn,
                                     java.lang.String userName,
                                     java.lang.String packageFilter)
                                     throws java.lang.Exception
Return a list of packages visible in this connection. Invokes getDBPackageList(Connection conn, String userName).

Note: this method is subject to change.

Parameters:
conn - the connection object.
userName - the user name for which database packages need to be listed.
packageFilter - the filter the database packages need to be listed.
Returns:
a ArrayList containing String objects.
Throws:
java.lang.Exception

getDBOperationList

java.util.ArrayList getDBOperationList(java.sql.Connection connection,
                                       java.lang.String userName,
                                       java.lang.String packageFilter,
                                       java.lang.String operationFilter)
                                       throws java.lang.Exception
Return a list of packages visible in this connection.

Note: this method is subject to change.

Parameters:
connection - the connection object.
userName - the user name for which the database functions and procedures need to be listed.
packageFilter - the filter the database packages in which the functions and procedures need to be listed.
operationFilter - the filter the database functions and procedures need to be listed.
Returns:
a ArrayList containing String objects.
Throws:
java.lang.Exception

getConstraintsList

java.util.ArrayList getConstraintsList(java.sql.Connection conn,
                                       java.lang.String catalog,
                                       java.lang.String schema,
                                       java.lang.String table)
                                       throws java.sql.SQLException
Return vector with constraint details for this table where each detail is in a String array with this structure: 0 String owner

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

Note: this method is subject to change.

Parameters:
conn - the connection object.
catalog - the database catalog.
schema - the database schema.
table - the name of the table.
Returns:
an ArrayList containing an array of String objects.
Throws:
java.sql.SQLException

getConstraints

java.util.Vector getConstraints(java.sql.Connection conn,
                                java.lang.String catalog,
                                java.lang.String schema,
                                java.lang.String table)
                                throws java.sql.SQLException
Return vector with constraint details for this table.

Note: this method is subject to change.

Parameters:
conn - the connection object.
catalog - the database catalog.
schema - the database schema.
table - the name of the table.
Returns:
a Vector containing an array of String objects.
Throws:
java.sql.SQLException

getBaseTable

java.lang.String getBaseTable(java.sql.Connection conn,
                              java.lang.String schema,
                              java.lang.String name)
                              throws java.sql.SQLException
Unroll any synonyms that may be present, and get the real objectname.

Note: this method is subject to change.

Parameters:
conn - the connection object.
schema - the database schema.
name - the name of the potential synonym.
Returns:
a String containing the real table name. Note that even if the argument is a table name it may be altered to enforce consistent naming convention. For non-Oracle databases the name is returned unaltered.
Throws:
java.sql.SQLException

checkTableNameForQuotes

java.lang.String checkTableNameForQuotes(java.lang.String tableName)
Add quotes to any table name that may need it.

Note: this method is subject to change.

Parameters:
tableName - the name of the table.
Returns:
the quoted table name if needed otherwise returns the table name unaltered.

executeBatch

void executeBatch(java.sql.PreparedStatement stmt)
                  throws java.sql.SQLException
Executes the PreparedStatement in batch mode. Implemented for Oracle database only by invoking OraclePreparedStatement.executeBatch. Other database flavors throw an exception.

Note: this method is subject to change.

Parameters:
stmt - a PreparedStatement object.
Throws:
java.sql.SQLException

lookupDataSource

javax.sql.DataSource lookupDataSource(java.lang.String nsUrl,
                                      java.lang.String nsUser,
                                      java.lang.String nsPasswd,
                                      java.lang.String dataSourceName)
                                      throws JboException
Performs a JNDI lookup for the datasource. Supported for Oracle database only.

Note: this method is subject to change.

Parameters:
nsUrl - the provider URL.
nsUser - the username to connect to the provider.
nsPasswd - the password to connect to the provider.
dataSourceName - the name of the datasource.
Returns:
a DataSource definition object if lookup is successful, null otherwise.
Throws:
JboException

isDataSourceJTABased

boolean isDataSourceJTABased(javax.sql.DataSource ds)
Checks if the DataSource is JTA-enabled.

Note: this method is subject to change.

Parameters:
ds - the DataSource object.
Returns:
true if the data source is JTA-enabled, false otherwise.

getViewCriteriaAdapter

ViewCriteriaAdapter getViewCriteriaAdapter()
Returns a ViewCriteriaAdapter for the SQLBuilder object. ViewCriteriaAdapter is used in creating WHERE clause based on a set of criteria for a ViewObject.

Note: this method is subject to change.

Returns:
a ViewCriteriaAdapter instance.

getCurrentDbTime

java.sql.Timestamp getCurrentDbTime(java.sql.Connection conn)
Returns the current time from the Database.
Parameters:
conn - the connection object.
Returns:
a Timestamp containing the Database time.

getCreateSequenceInsertTriggerSQL

java.lang.String getCreateSequenceInsertTriggerSQL(java.lang.String triggerName,
                                                   java.lang.String tableName,
                                                   java.util.ArrayList sequenceNames,
                                                   java.util.ArrayList colNames)
Returns a SQL statement that creates a trigger that updates a column with the value from a sequence upon the creation of a new row.

Supported for Oracle database only.

Note: this method is subject to change.

Parameters:
triggerName - the name of the trigger.
tableName - the name of the table for which the trigger is created.
sequenceNames - the array of names of the sequence.
colNames - the arrya of names of the column to which the value of the sequence is copied to.
Returns:
the SQL statement as a String object.

getCreateSequenceSQL

java.lang.String getCreateSequenceSQL(java.lang.String sequenceName,
                                      int startVal)
Returns a SQL statement that creates a Sequence with an initial value specified in the argument.

Note: this method is subject to change.

Parameters:
sequenceName - name of the Sequence.
startVal - the initial value of the Sequence.
Returns:
the SQL statement as a String object.

getDropSequenceSQL

java.lang.String getDropSequenceSQL(java.lang.String sequenceName)
Returns a SQL statement that drops a specified Sequence.

Note: this method is subject to change.

Parameters:
sequenceName - name of the Sequence.
Returns:
the SQL statement as a String object.

getDropTableSQL

java.lang.String getDropTableSQL(java.lang.String dbObjectName)
Returns a SQL statement that drops a specified table. For Oracle database it also deletes the constraints for the table.

Note: this method is subject to change.

Parameters:
dbObjectName - name of the Table.
Returns:
the SQL statement as a String object.

isDisplayBindValueUI

boolean isDisplayBindValueUI()
For Oracle database the test SQL wizards provide additional functionality to bind the parameters with test values. For other databases this functionality is not supported.
Returns:
true for Oracle, false for all other databases.

doRefreshSQL

void doRefreshSQL(EntityImpl entityContext,
                  int operation,
                  AttributeDefImpl[] columns,
                  AttributeDefImpl[] keyCols)
Refreshes the entity after an update on the database. The refresh depends entirely on, the attributes which were modified. If no UNIQUE/PRIMARY KEY attribute was set in the application, or they are modified in a database trigger then the refresh may not be able to find the required row. In this situation RowNotFoundException will be thrown. If there is good reason behind not setting any of the KEY attributes, then, in a custom SQLBuilder, this method should be overriden.

Note: this method is subject to change.

Parameters:
entityContext - the Entity row.
operation - SQL Operation
columns - Columns to be selected.
keyCols - Key columns to appear be to used to refresh, which appear in WHERE clause.

supportsReturningClause

boolean supportsReturningClause()
Checks if the database supports the Returning clause.
Returns:
true for Oracle database and false otherwise.

getQueryHitCountSQL

java.lang.String getQueryHitCountSQL(RowSet rs)
Returns a SQL statement to estimate the number of rows effected by the query using the rowset values.

Note: this method is subject to change.

Parameters:
rs - the RowSet object.
Returns:
the SQL statement as a String object.

getCappedQueryHitCountSQL

java.lang.String getCappedQueryHitCountSQL(RowSet rs,
                                           long cap)

supportsRowNumQuery

boolean supportsRowNumQuery()
Checks if the database supports "rownum" identifier. Used for fetching rows in the specified range.

Note: this method is subject to change.

Returns:
true for Oracle database and false otherwise.

isConnectionAlive

boolean isConnectionAlive(java.sql.Connection conn)
Detects if a connection is alive.
Parameters:
conn - the connection object.
Returns:
true if the connection is active, false otherwise.

buildWhereClause

void buildWhereClause(EntityImpl entityContext,
                      java.lang.StringBuffer buffer,
                      AttributeDefImpl[] keyCols,
                      java.lang.Object rowid)
Creates a WHERE clause containing the Primary Key columns passed to the method.

Note: this method is subject to change.

Parameters:
entityContext - the entity object.
buffer - the StringBuffer object to which the WHERE clause is appended.
keyCols - the key attributes.
rowid - a rowid object if present.

convertValueToStorageType

java.lang.Object convertValueToStorageType(java.lang.Object value)
This method is used to convert the Java type to a JDBC type so that it could be used to bind as a parameter for SQL execution.

Note: this method is subject to change.

Parameters:
value - the object that needs to be converted.
Returns:
the JDBC type.

jdbcClientSideSecurity

void jdbcClientSideSecurity(java.util.Properties info,
                            java.util.Hashtable env)
Populates the properties with known security attributes found in the environment. Used for Oracle JDBC connectivity only. The values are copied into the Properties from the Session's environment.

Note: this method is subject to change.

Parameters:
info - the properties object to which the values are copied to.
env - the environment object to lookup the security attributes.

compareFetchedValue

boolean compareFetchedValue(EntityImpl entity,
                            AttributeDefImpl ad,
                            java.lang.Object cacheValue,
                            java.lang.Object fetchedValue)
Compare the cacheValue with fetchedValue and if they are equal return true This API is used when comparing cached entity with a faulted in entity. Signature modified since 9.0.5.1 to allow for Entity context to be available during compare so that Applications could perform custom comparision logic based on either settings in the Entity or any other context available via the entity.

Note: this method is subject to change.

Parameters:
entity - the entity object.
ad - the attribute definition of the value being compared.
cacheValue - the cached value.
fetchedValue - the new fetched value.
Returns:
true if the values are same, false otherwise.

bindParametersForStmt

void bindParametersForStmt(int bindingStyle,
                           java.lang.Object[] params,
                           java.sql.PreparedStatement stmt)
                           throws java.sql.SQLException
Bind parameter values for a SQL execution.

Note: this method is subject to change.

Parameters:
bindingStyle - specifies if Oracle, Oracle named parameter or JDBC binding style is used.
params - the list of parameters.
stmt - the statement to be executed.
Throws:
java.sql.SQLException

processException

void processException(java.lang.String errorCode,
                      java.lang.Exception sqlEx,
                      java.lang.Object[] params)
Handle SQL exceptions by wrapping into SQLStmtException or JboException.

Note: this method is subject to change.

Parameters:
errorCode - the SQL execution errorcode.
sqlEx - the Exception object.
params - the query parameters.

invalidDatumFactoryUsage

boolean invalidDatumFactoryUsage(java.lang.String colType,
                                 int id,
                                 java.lang.Class clz)
Returns false only for types where raw-bytes may be used to create the desired attribute values while fetching data from jdbc. Most subclasses will return true for this method.

getMaxTableNameLength

int getMaxTableNameLength(java.sql.Connection conn)
Return the maximum length of a table name for the Database connection.
Parameters:
conn - the Database connection object
Returns:
a non-zero integer if the table name length can be determined, zero otherwise.

isNewLineAllowedInSQL

boolean isNewLineAllowedInSQL(java.sql.Connection conn)
Checks if the JDBC driver supports new line character in SQL statements. Over-ridden by DB2SQLBuilderImpl to return false when using DB2 Universal Driver (Type IV).
Parameters:
conn - the Database connection object
Returns:
true if the driver supports a new line character

buildDefaultViewObjectFromClause

void buildDefaultViewObjectFromClause(java.lang.StringBuffer fromClause,
                                      java.util.List eRefs,
                                      BaseViewCriteriaManagerImpl vcManager)
This method is used to generate the "from" clause if the following conditions are met: