|
|||||||||
| Home >> All >> org >> hibernate >> [ jdbc overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.hibernate.jdbc
Class AbstractBatcher

java.lang.Objectorg.hibernate.jdbc.AbstractBatcher
- All Implemented Interfaces:
- Batcher
- Direct Known Subclasses:
- BatchingBatcher, NonBatchingBatcher
- public abstract class AbstractBatcher
- extends java.lang.Object
- implements Batcher
- extends java.lang.Object
Manages prepared statements and batching.
| Field Summary | |
private java.sql.PreparedStatement |
batchUpdate
|
private java.lang.String |
batchUpdateSQL
|
private ConnectionManager |
connectionManager
|
private org.hibernate.engine.SessionFactoryImplementor |
factory
|
private static int |
globalOpenPreparedStatementCount
|
private static int |
globalOpenResultSetCount
|
private org.hibernate.Interceptor |
interceptor
|
(package private) boolean |
isTransactionTimeoutSet
|
private java.sql.PreparedStatement |
lastQuery
|
protected static org.apache.commons.logging.Log |
log
|
private int |
openPreparedStatementCount
|
private int |
openResultSetCount
|
private boolean |
releasing
|
private java.util.HashSet |
resultSetsToClose
|
protected static org.apache.commons.logging.Log |
SQL_LOG
|
private java.util.HashSet |
statementsToClose
|
private long |
transactionTimeout
|
| Constructor Summary | |
AbstractBatcher(ConnectionManager connectionManager,
org.hibernate.Interceptor interceptor)
|
|
| Method Summary | |
void |
abortBatch(java.sql.SQLException sqle)
Must be called when an exception occurs |
void |
cancelLastQuery()
Cancel the current query statement |
void |
closeConnection(java.sql.Connection conn)
Dispose of the JDBC connection |
private void |
closePreparedStatement(java.sql.PreparedStatement ps)
|
private void |
closeQueryStatement(java.sql.PreparedStatement ps)
|
void |
closeQueryStatement(java.sql.PreparedStatement ps,
java.sql.ResultSet rs)
Close a prepared statement opened with prepareQueryStatement() |
void |
closeStatement(java.sql.PreparedStatement ps)
Close a prepared or callable statement opened using prepareStatement() or prepareCallableStatement() |
void |
closeStatements()
Actually releases the batcher, allowing it to cleanup internally held resources. |
protected abstract void |
doExecuteBatch(java.sql.PreparedStatement ps)
|
void |
executeBatch()
Execute the batch |
private java.lang.String |
format(java.lang.String sql)
|
private java.sql.CallableStatement |
getCallableStatement(java.sql.Connection conn,
java.lang.String sql,
boolean scrollable)
|
protected org.hibernate.engine.SessionFactoryImplementor |
getFactory()
|
private java.sql.PreparedStatement |
getPreparedStatement(java.sql.Connection conn,
java.lang.String sql,
boolean scrollable,
boolean useGetGeneratedKeys,
java.lang.String[] namedGeneratedKeys,
org.hibernate.ScrollMode scrollMode,
boolean callable)
|
private java.sql.PreparedStatement |
getPreparedStatement(java.sql.Connection conn,
java.lang.String sql,
boolean scrollable,
org.hibernate.ScrollMode scrollMode)
|
java.sql.ResultSet |
getResultSet(java.sql.CallableStatement ps,
org.hibernate.dialect.Dialect dialect)
Execute the statement and return the result set from a callable statement |
java.sql.ResultSet |
getResultSet(java.sql.PreparedStatement ps)
Execute the statement and return the result set |
private java.lang.String |
getSQL(java.lang.String sql)
|
protected java.sql.PreparedStatement |
getStatement()
|
boolean |
hasOpenResources()
|
private void |
log(java.lang.String sql)
|
private void |
logClosePreparedStatement()
|
private void |
logCloseResults()
|
private void |
logOpenPreparedStatement()
|
private void |
logOpenResults()
|
java.sql.Connection |
openConnection()
Obtain a JDBC connection |
java.lang.String |
openResourceStatsAsString()
|
java.sql.CallableStatement |
prepareBatchCallableStatement(java.lang.String sql)
Get a batchable callable statement to use for inserting / deleting / updating (might be called many times before a single call to executeBatch()). |
java.sql.PreparedStatement |
prepareBatchStatement(java.lang.String sql)
Get a batchable prepared statement to use for inserting / deleting / updating (might be called many times before a single call to executeBatch()). |
java.sql.CallableStatement |
prepareCallableQueryStatement(java.lang.String sql,
boolean scrollable,
org.hibernate.ScrollMode scrollMode)
Get a prepared statement for use in loading / querying. |
java.sql.CallableStatement |
prepareCallableStatement(java.lang.String sql)
Get a non-batchable callable statement to use for inserting / deleting / updating. |
private java.lang.String |
preparedStatementCountsToString()
|
java.sql.PreparedStatement |
prepareQueryStatement(java.lang.String sql,
boolean scrollable,
org.hibernate.ScrollMode scrollMode)
Get a prepared statement for use in loading / querying. |
java.sql.PreparedStatement |
prepareSelectStatement(java.lang.String sql)
Get a non-batchable prepared statement to use for selecting. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql)
Get a non-batchable prepared statement to use for inserting / deleting / updating. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
boolean getGeneratedKeys)
Get a non-batchable prepared statement to use for inserting / deleting / updating, using JDBC3 getGeneratedKeys (Connection.prepareStatement(String, int)> Connection.prepareStatement(String, int) 55 ). |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
java.lang.String[] columnNames)
Get a non-batchable prepared statement to use for inserting / deleting / updating. |
private java.lang.String |
resultSetCountsToString()
|
private void |
setStatementFetchSize(java.sql.PreparedStatement statement)
|
private void |
setTimeout(java.sql.PreparedStatement result)
|
void |
setTransactionTimeout(int seconds)
Set the transaction timeout to seconds later than the current system time. |
void |
unsetTransactionTimeout()
Unset the transaction timeout, called after the end of a transaction. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.hibernate.jdbc.Batcher |
addToBatch |
| Field Detail |
globalOpenPreparedStatementCount
private static int globalOpenPreparedStatementCount
globalOpenResultSetCount
private static int globalOpenResultSetCount
openPreparedStatementCount
private int openPreparedStatementCount
openResultSetCount
private int openResultSetCount
log
protected static final org.apache.commons.logging.Log log
SQL_LOG
protected static final org.apache.commons.logging.Log SQL_LOG
connectionManager
private final ConnectionManager connectionManager
factory
private final org.hibernate.engine.SessionFactoryImplementor factory
batchUpdate
private java.sql.PreparedStatement batchUpdate
batchUpdateSQL
private java.lang.String batchUpdateSQL
statementsToClose
private java.util.HashSet statementsToClose
resultSetsToClose
private java.util.HashSet resultSetsToClose
lastQuery
private java.sql.PreparedStatement lastQuery
releasing
private boolean releasing
interceptor
private final org.hibernate.Interceptor interceptor
transactionTimeout
private long transactionTimeout
isTransactionTimeoutSet
boolean isTransactionTimeoutSet
| Constructor Detail |
AbstractBatcher
public AbstractBatcher(ConnectionManager connectionManager, org.hibernate.Interceptor interceptor)
| Method Detail |
setTransactionTimeout
public void setTransactionTimeout(int seconds)
- Description copied from interface:
Batcher - Set the transaction timeout to seconds later
than the current system time.
- Specified by:
setTransactionTimeoutin interfaceBatcher
unsetTransactionTimeout
public void unsetTransactionTimeout()
- Description copied from interface:
Batcher - Unset the transaction timeout, called after the end of a
transaction.
- Specified by:
unsetTransactionTimeoutin interfaceBatcher
getStatement
protected java.sql.PreparedStatement getStatement()
prepareCallableStatement
public java.sql.CallableStatement prepareCallableStatement(java.lang.String sql) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a non-batchable callable statement to use for inserting / deleting / updating.
Must be explicitly released by
Batcher.closeStatement(java.sql.PreparedStatement)55 after use.- Specified by:
prepareCallableStatementin interfaceBatcher
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a non-batchable prepared statement to use for inserting / deleting / updating.
Must be explicitly released by
Batcher.closeStatement(java.sql.PreparedStatement)55 after use.- Specified by:
prepareStatementin interfaceBatcher
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, boolean getGeneratedKeys) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a non-batchable prepared statement to use for inserting / deleting / updating,
using JDBC3 getGeneratedKeys (Connection.prepareStatement(String, int)>
Connection.prepareStatement(String, int)55 ). Must be explicitly released byBatcher.closeStatement(java.sql.PreparedStatement)55 after use.- Specified by:
prepareStatementin interfaceBatcher
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a non-batchable prepared statement to use for inserting / deleting / updating.
using JDBC3 getGeneratedKeys (Connection.prepareStatement(String, String[])>
Connection.prepareStatement(String, String[])55 ). Must be explicitly released byBatcher.closeStatement(java.sql.PreparedStatement)55 after use.- Specified by:
prepareStatementin interfaceBatcher
prepareSelectStatement
public java.sql.PreparedStatement prepareSelectStatement(java.lang.String sql) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a non-batchable prepared statement to use for selecting. Does not
result in execution of the current batch.
- Specified by:
prepareSelectStatementin interfaceBatcher
prepareQueryStatement
public java.sql.PreparedStatement prepareQueryStatement(java.lang.String sql, boolean scrollable, org.hibernate.ScrollMode scrollMode) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a prepared statement for use in loading / querying. If not explicitly
released by closeQueryStatement(), it will be released when the
session is closed or disconnected.
- Specified by:
prepareQueryStatementin interfaceBatcher
prepareCallableQueryStatement
public java.sql.CallableStatement prepareCallableQueryStatement(java.lang.String sql, boolean scrollable, org.hibernate.ScrollMode scrollMode) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a prepared statement for use in loading / querying. If not explicitly
released by closeQueryStatement(), it will be released when the
session is closed or disconnected.
- Specified by:
prepareCallableQueryStatementin interfaceBatcher
abortBatch
public void abortBatch(java.sql.SQLException sqle)
- Description copied from interface:
Batcher - Must be called when an exception occurs
- Specified by:
abortBatchin interfaceBatcher
getResultSet
public java.sql.ResultSet getResultSet(java.sql.PreparedStatement ps) throws java.sql.SQLException
- Description copied from interface:
Batcher - Execute the statement and return the result set
- Specified by:
getResultSetin interfaceBatcher
getResultSet
public java.sql.ResultSet getResultSet(java.sql.CallableStatement ps, org.hibernate.dialect.Dialect dialect) throws java.sql.SQLException
- Description copied from interface:
Batcher - Execute the statement and return the result set from a callable statement
- Specified by:
getResultSetin interfaceBatcher
closeQueryStatement
public void closeQueryStatement(java.sql.PreparedStatement ps, java.sql.ResultSet rs) throws java.sql.SQLException
- Description copied from interface:
Batcher - Close a prepared statement opened with prepareQueryStatement()
- Specified by:
closeQueryStatementin interfaceBatcher
prepareBatchStatement
public java.sql.PreparedStatement prepareBatchStatement(java.lang.String sql) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a batchable prepared statement to use for inserting / deleting / updating
(might be called many times before a single call to executeBatch()).
After setting parameters, call addToBatch - do not execute the
statement explicitly.
- Specified by:
prepareBatchStatementin interfaceBatcher
prepareBatchCallableStatement
public java.sql.CallableStatement prepareBatchCallableStatement(java.lang.String sql) throws java.sql.SQLException, org.hibernate.HibernateException
- Description copied from interface:
Batcher - Get a batchable callable statement to use for inserting / deleting / updating
(might be called many times before a single call to executeBatch()).
After setting parameters, call addToBatch - do not execute the
statement explicitly.
- Specified by:
prepareBatchCallableStatementin interfaceBatcher
executeBatch
public void executeBatch()
throws org.hibernate.HibernateException
- Description copied from interface:
Batcher - Execute the batch
- Specified by:
executeBatchin interfaceBatcher
closeStatement
public void closeStatement(java.sql.PreparedStatement ps) throws java.sql.SQLException
- Description copied from interface:
Batcher - Close a prepared or callable statement opened using prepareStatement() or prepareCallableStatement()
- Specified by:
closeStatementin interfaceBatcher
closeQueryStatement
private void closeQueryStatement(java.sql.PreparedStatement ps) throws java.sql.SQLException
closeStatements
public void closeStatements()
- Actually releases the batcher, allowing it to cleanup internally held
resources.
- Specified by:
closeStatementsin interfaceBatcher
doExecuteBatch
protected abstract void doExecuteBatch(java.sql.PreparedStatement ps) throws java.sql.SQLException, org.hibernate.HibernateException
preparedStatementCountsToString
private java.lang.String preparedStatementCountsToString()
resultSetCountsToString
private java.lang.String resultSetCountsToString()
logOpenPreparedStatement
private void logOpenPreparedStatement()
logClosePreparedStatement
private void logClosePreparedStatement()
logOpenResults
private void logOpenResults()
logCloseResults
private void logCloseResults()
getFactory
protected org.hibernate.engine.SessionFactoryImplementor getFactory()
log
private void log(java.lang.String sql)
format
private java.lang.String format(java.lang.String sql)
getPreparedStatement
private java.sql.PreparedStatement getPreparedStatement(java.sql.Connection conn, java.lang.String sql, boolean scrollable, org.hibernate.ScrollMode scrollMode) throws java.sql.SQLException
getCallableStatement
private java.sql.CallableStatement getCallableStatement(java.sql.Connection conn, java.lang.String sql, boolean scrollable) throws java.sql.SQLException
getSQL
private java.lang.String getSQL(java.lang.String sql)
getPreparedStatement
private java.sql.PreparedStatement getPreparedStatement(java.sql.Connection conn, java.lang.String sql, boolean scrollable, boolean useGetGeneratedKeys, java.lang.String[] namedGeneratedKeys, org.hibernate.ScrollMode scrollMode, boolean callable) throws java.sql.SQLException
setTimeout
private void setTimeout(java.sql.PreparedStatement result) throws java.sql.SQLException
closePreparedStatement
private void closePreparedStatement(java.sql.PreparedStatement ps) throws java.sql.SQLException
setStatementFetchSize
private void setStatementFetchSize(java.sql.PreparedStatement statement) throws java.sql.SQLException
openConnection
public java.sql.Connection openConnection() throws org.hibernate.HibernateException
- Description copied from interface:
Batcher - Obtain a JDBC connection
- Specified by:
openConnectionin interfaceBatcher
closeConnection
public void closeConnection(java.sql.Connection conn) throws org.hibernate.HibernateException
- Description copied from interface:
Batcher - Dispose of the JDBC connection
- Specified by:
closeConnectionin interfaceBatcher
cancelLastQuery
public void cancelLastQuery()
throws org.hibernate.HibernateException
- Description copied from interface:
Batcher - Cancel the current query statement
- Specified by:
cancelLastQueryin interfaceBatcher
hasOpenResources
public boolean hasOpenResources()
- Specified by:
hasOpenResourcesin interfaceBatcher
openResourceStatsAsString
public java.lang.String openResourceStatsAsString()
- Specified by:
openResourceStatsAsStringin interfaceBatcher
|
|||||||||
| Home >> All >> org >> hibernate >> [ jdbc overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.hibernate.jdbc.AbstractBatcher