|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.ojb.broker.platforms.PlatformDefaultImpl
public class PlatformDefaultImpl
This class is a concrete implementation of Platform
. Provides default implementations for all
methods declared in Platform
.
It is intended as a vanilla implementation and as baseclass for
platform specific implementations.
Field Summary |
---|
Fields inherited from interface org.apache.ojb.broker.accesslayer.JoinSyntaxTypes |
---|
ORACLE_JOIN_SYNTAX, SQL92_JOIN_SYNTAX, SQL92_NOPAREN_JOIN_SYNTAX, SYBASE_JOIN_SYNTAX |
Constructor Summary | |
---|---|
PlatformDefaultImpl()
|
Method Summary | |
---|---|
void |
addBatch(java.sql.PreparedStatement stmt)
Called when adding statements to current batch. |
void |
addPagingSql(java.lang.StringBuffer anSqlString)
Add the LIMIT or equivalent to the SQL SQL-Paging is not yet supported |
void |
afterStatementClose(java.sql.Statement stmt,
java.sql.ResultSet rs)
Called by StatementManagerIF implementation
after invoking stmt.close() method. |
void |
afterStatementCreate(java.sql.Statement stmt)
Called after a statement has been created. |
void |
beforeBatch(java.sql.PreparedStatement stmt)
Called before batching operations on a statement. |
void |
beforeStatementClose(java.sql.Statement stmt,
java.sql.ResultSet rs)
Called by StatementManagerIF implementation
before invoking stmt.close() method. |
int |
bindPagingParameters(java.sql.PreparedStatement ps,
int index,
int startAt,
int endAt)
Bind the Paging Parameters SQL-Paging is not yet supported |
boolean |
bindPagingParametersFirst()
Answer true if the LIMIT parameters are bound before the query parameters SQL-Paging is not yet supported |
void |
changeAutoCommitState(JdbcConnectionDescriptor jcd,
java.sql.Connection con,
boolean newState)
Used to do a temporary change of the m_connection autoCommit state. |
java.lang.String |
concatenate(java.lang.String[] theColumns)
Concatenate the columns ie: col1 || col2 || col3 (ANSI) ie: col1 + col2 + col3 (MS SQL-Server) ie: concat(col1, col2, col3) (MySql) |
java.lang.String |
createSequenceQuery(java.lang.String sequenceName)
Override this method to enable database based sequence generation |
java.lang.String |
createSequenceQuery(java.lang.String sequenceName,
java.util.Properties prop)
Returns a query to create a sequence entry. |
java.lang.String |
dropSequenceQuery(java.lang.String sequenceName)
Override this method to enable database based sequence generation |
int[] |
executeBatch(java.sql.PreparedStatement stmt)
Executes current batch. |
java.lang.String |
getEscapeClause(LikeCriteria aCriteria)
Answer the Clause used Escape wildcards in LIKE |
byte |
getJoinSyntaxType()
Get join syntax type for this RDBMS - one on of the constants from JoinSyntaxType interface |
java.lang.String |
getLastInsertIdentityQuery(java.lang.String tableName)
If database supports native key generation via identity column, this method should return the sql-query to obtain the last generated id. |
void |
initializeJdbcConnection(JdbcConnectionDescriptor jcd,
java.sql.Connection conn)
Called immediately after a JDBC connection has been created by a ConnectionFactory implementation (not used for DataSource connections). |
java.lang.String |
nextSequenceQuery(java.lang.String sequenceName)
Override this method to enable database based sequence generation |
java.sql.CallableStatement |
prepareNextValProcedureStatement(java.sql.Connection con,
java.lang.String procedureName,
java.lang.String sequenceName)
Create stored procedure call for a special sequence manager implementation SequenceManagerStoredProcedureImpl ,
because it seems that jdbc-driver differ in handling of CallableStatement. |
void |
registerOutResultSet(java.sql.CallableStatement stmt,
int position)
Registers call argument at position as returning
a ResultSet value. |
void |
setNullForStatement(java.sql.PreparedStatement ps,
int index,
int sqlType)
Called to let the Platform implementation perform any JDBC type-specific operations needed by the driver when binding null parameters for a PreparedStatement. |
void |
setObjectForStatement(java.sql.PreparedStatement ps,
int index,
java.lang.Object value,
int sqlType)
Called to let the Platform implementation perform any JDBC type-specific operations needed by the driver when binding positional parameters for a PreparedStatement. |
boolean |
supportsBatchOperations()
If this platform supports the batch operations jdbc 2.0 feature. |
boolean |
supportsMultiColumnCountDistinct()
Whether the platform supports a COUNT DISTINCT across multiple columns. |
boolean |
supportsPaging()
Answer true if LIMIT or equivalent is supported SQL-Paging is not yet supported |
boolean |
useCountForResultsetSize()
Override default ResultSet size determination (rs.last();rs.getRow()) with select count(*) operation |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PlatformDefaultImpl()
Method Detail |
---|
public boolean supportsBatchOperations()
Platform
supportsBatchOperations
in interface Platform
public void afterStatementCreate(java.sql.Statement stmt) throws PlatformException
Platform
afterStatementCreate
in interface Platform
PlatformException
public void beforeStatementClose(java.sql.Statement stmt, java.sql.ResultSet rs) throws PlatformException
Platform
StatementManagerIF
implementation
before invoking stmt.close() method.
beforeStatementClose
in interface Platform
PlatformException
public void afterStatementClose(java.sql.Statement stmt, java.sql.ResultSet rs) throws PlatformException
Platform
StatementManagerIF
implementation
after invoking stmt.close() method.
afterStatementClose
in interface Platform
PlatformException
public void beforeBatch(java.sql.PreparedStatement stmt) throws PlatformException
Platform
beforeBatch
in interface Platform
stmt
- the statement you want to batch on
PlatformException
public void addBatch(java.sql.PreparedStatement stmt) throws PlatformException
Platform
addBatch
in interface Platform
stmt
- the statement you are adding to the batch
PlatformException
public int[] executeBatch(java.sql.PreparedStatement stmt) throws PlatformException
Platform
executeBatch
in interface Platform
stmt
- the statement you want to execute the batch on
PlatformException
public void initializeJdbcConnection(JdbcConnectionDescriptor jcd, java.sql.Connection conn) throws PlatformException
Platform
initializeJdbcConnection
in interface Platform
conn
- the Connection to be initialized
PlatformException
Platform.initializeJdbcConnection(org.apache.ojb.broker.metadata.JdbcConnectionDescriptor, java.sql.Connection)
public void changeAutoCommitState(JdbcConnectionDescriptor jcd, java.sql.Connection con, boolean newState)
Platform
JdbcConnectionDescriptor.getUseAutoCommit()
was set to
JdbcConnectionDescriptor.AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
the change of the autoCommit state take effect.
changeAutoCommitState
in interface Platform
public void setObjectForStatement(java.sql.PreparedStatement ps, int index, java.lang.Object value, int sqlType) throws java.sql.SQLException
Platform
setObjectForStatement
in interface Platform
java.sql.SQLException
public void setNullForStatement(java.sql.PreparedStatement ps, int index, int sqlType) throws java.sql.SQLException
Platform
setNullForStatement
in interface Platform
java.sql.SQLException
public byte getJoinSyntaxType()
getJoinSyntaxType
in interface Platform
Platform.getJoinSyntaxType()
public boolean useCountForResultsetSize()
useCountForResultsetSize
in interface Platform
Platform.useCountForResultsetSize()
public java.lang.String createSequenceQuery(java.lang.String sequenceName, java.util.Properties prop)
Platform
createSequenceQuery
in interface Platform
sequenceName
- The name of the sequence to create.prop
- The database specific sequence properties.
public java.lang.String createSequenceQuery(java.lang.String sequenceName)
createSequenceQuery
in interface Platform
sequenceName
- The name of the sequence to create.
public java.lang.String nextSequenceQuery(java.lang.String sequenceName)
nextSequenceQuery
in interface Platform
public java.lang.String dropSequenceQuery(java.lang.String sequenceName)
dropSequenceQuery
in interface Platform
public java.sql.CallableStatement prepareNextValProcedureStatement(java.sql.Connection con, java.lang.String procedureName, java.lang.String sequenceName) throws PlatformException
Platform
SequenceManagerStoredProcedureImpl
,
because it seems that jdbc-driver differ in handling of CallableStatement.
Connection con = broker.serviceConnectionManager().getConnection(); cs = getPlatform().prepareNextValProcedureStatement(con, PROCEDURE_NAME, sequenceName); cs.executeUpdate(); return cs.getLong(1);
prepareNextValProcedureStatement
in interface Platform
PlatformException
public java.lang.String getLastInsertIdentityQuery(java.lang.String tableName)
Platform
getLastInsertIdentityQuery
in interface Platform
public void addPagingSql(java.lang.StringBuffer anSqlString)
Platform
addPagingSql
in interface Platform
Platform.addPagingSql(java.lang.StringBuffer)
public boolean bindPagingParametersFirst()
Platform
bindPagingParametersFirst
in interface Platform
Platform.bindPagingParametersFirst()
public boolean supportsPaging()
Platform
supportsPaging
in interface Platform
Platform.supportsPaging()
public int bindPagingParameters(java.sql.PreparedStatement ps, int index, int startAt, int endAt) throws java.sql.SQLException
Platform
bindPagingParameters
in interface Platform
index
- parameter index
java.sql.SQLException
Platform.bindPagingParameters(java.sql.PreparedStatement, int, int, int)
public boolean supportsMultiColumnCountDistinct()
supportsMultiColumnCountDistinct
in interface Platform
true
if it is supportedpublic java.lang.String concatenate(java.lang.String[] theColumns)
Platform
concatenate
in interface Platform
Platform.concatenate(java.lang.String[])
public java.lang.String getEscapeClause(LikeCriteria aCriteria)
Platform
getEscapeClause
in interface Platform
Platform.getEscapeClause(org.apache.ojb.broker.query.LikeCriteria)
public void registerOutResultSet(java.sql.CallableStatement stmt, int position) throws java.sql.SQLException
Platform
position
as returning
a ResultSet
value.
registerOutResultSet
in interface Platform
stmt
- the statementposition
- argument position
java.sql.SQLException
Platform.registerOutResultSet(java.sql.CallableStatement, int)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |