public class PoolingConnection extends DelegatingConnection implements KeyedPoolableObjectFactory<PStmtKey,DelegatingPreparedStatement>
DelegatingConnection that pools PreparedStatements.
The prepareStatement(java.lang.String) and prepareCall(java.lang.String) methods, rather than creating a new PreparedStatement
each time, may actually pull the statement from a pool of unused statements.
The Statement.close() method of the returned statement doesn't
actually close the statement, but rather returns it to the pool.
(See PoolablePreparedStatement, PoolableCallableStatement.)
PoolablePreparedStatement| Modifier and Type | Class and Description |
|---|---|
static class |
PoolingConnection.StatementType |
| Modifier and Type | Field and Description |
|---|---|
protected KeyedObjectPool<PStmtKey,DelegatingPreparedStatement> |
_pstmtPool
Pool of
PreparedStatements. and CallableStatements |
_closed, _conn| Constructor and Description |
|---|
PoolingConnection(java.sql.Connection c)
Constructor.
|
PoolingConnection(java.sql.Connection c,
KeyedObjectPool<PStmtKey,DelegatingPreparedStatement> pool)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
activateObject(PStmtKey key,
DelegatingPreparedStatement obj)
KeyedPoolableObjectFactory method for activating
pooled statements. |
void |
close()
Close and free all
PreparedStatements or CallableStatement from the pool, and
close the underlying connection. |
protected PStmtKey |
createKey(java.lang.String sql)
Create a PStmtKey for the given arguments.
|
protected PStmtKey |
createKey(java.lang.String sql,
int autoGeneratedKeys) |
protected PStmtKey |
createKey(java.lang.String sql,
int[] columnIndexes) |
protected PStmtKey |
createKey(java.lang.String sql,
int resultSetType,
int resultSetConcurrency)
Create a PStmtKey for the given arguments.
|
protected PStmtKey |
createKey(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) |
protected PStmtKey |
createKey(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability,
PoolingConnection.StatementType statementType) |
protected PStmtKey |
createKey(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
PoolingConnection.StatementType stmtType)
Create a PStmtKey for the given arguments.
|
protected PStmtKey |
createKey(java.lang.String sql,
PoolingConnection.StatementType stmtType)
Create a PStmtKey for the given arguments.
|
protected PStmtKey |
createKey(java.lang.String sql,
java.lang.String[] columnNames)
Create a PStmtKey for the given arguments.
|
void |
destroyObject(PStmtKey key,
DelegatingPreparedStatement obj)
KeyedPoolableObjectFactory method for destroying
PoolablePreparedStatements and PoolableCallableStatements. |
DelegatingPreparedStatement |
makeObject(PStmtKey key)
KeyedPoolableObjectFactory method for creating
PoolablePreparedStatements or PoolableCallableStatements. |
protected java.lang.String |
normalizeSQL(java.lang.String sql)
Normalize the given SQL statement, producing a
cannonical form that is semantically equivalent to the original.
|
void |
passivateObject(PStmtKey key,
DelegatingPreparedStatement obj)
|
java.sql.CallableStatement |
prepareCall(java.lang.String sql)
Create or obtain a
CallableStatement from the pool. |
java.sql.CallableStatement |
prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency)
Create or obtain a
CallableStatement from the pool. |
java.sql.CallableStatement |
prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Create or obtain a
CallableStatement from the pool. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql)
Create or obtain a
PreparedStatement from the pool. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int autoGeneratedKeys) |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int[] columnIndexes)
Create or obtain a
PreparedStatement from the pool. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int resultSetType,
int resultSetConcurrency)
Create or obtain a
PreparedStatement from the pool. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Create or obtain a
PreparedStatement from the pool. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
java.lang.String[] columnNames)
Create or obtain a
PreparedStatement from the pool. |
java.lang.String |
toString()
Returns a string representation of the metadata associated with
the innnermost delegate connection.
|
boolean |
validateObject(PStmtKey key,
DelegatingPreparedStatement obj)
KeyedPoolableObjectFactory method for validating
pooled statements. |
abort, activate, checkOpen, clearWarnings, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, equals, getAutoCommit, getCatalog, getClientInfo, getClientInfo, getDelegate, getDelegateInternal, getHoldability, getInnermostDelegate, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleException, hashCode, innermostDelegateEquals, isClosed, isReadOnly, isValid, isWrapperFor, nativeSQL, passivate, releaseSavepoint, rollback, rollback, setAutoCommit, setCatalog, setClientInfo, setClientInfo, setDelegate, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, unwrapaddTrace, clearTrace, getConfig, getLastUsed, getTrace, printStackTrace, removeTrace, setLastUsed, setLastUsed, setStackTraceprotected KeyedObjectPool<PStmtKey,DelegatingPreparedStatement> _pstmtPool
PreparedStatements. and CallableStatementspublic PoolingConnection(java.sql.Connection c)
c - the underlying Connection.public PoolingConnection(java.sql.Connection c,
KeyedObjectPool<PStmtKey,DelegatingPreparedStatement> pool)
c - the underlying Connection.pool - KeyedObjectPool of PreparedStatements and CallableStatements.public void close()
throws java.sql.SQLException
PreparedStatements or CallableStatement from the pool, and
close the underlying connection.close in interface java.lang.AutoCloseableclose in interface java.sql.Connectionclose in class DelegatingConnectionjava.sql.SQLExceptionpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql)
throws java.sql.SQLException
PreparedStatement from the pool.prepareStatement in interface java.sql.ConnectionprepareStatement in class DelegatingConnectionsql - the sql string used to define the PreparedStatementPoolablePreparedStatementjava.sql.SQLExceptionpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql,
int autoGeneratedKeys)
throws java.sql.SQLException
prepareStatement in interface java.sql.ConnectionprepareStatement in class DelegatingConnectionjava.sql.SQLExceptionpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql,
int resultSetType,
int resultSetConcurrency)
throws java.sql.SQLException
PreparedStatement from the pool.prepareStatement in interface java.sql.ConnectionprepareStatement in class DelegatingConnectionsql - the sql string used to define the PreparedStatementresultSetType - result set typeresultSetConcurrency - result set concurrencyPoolablePreparedStatementjava.sql.SQLExceptionpublic java.sql.CallableStatement prepareCall(java.lang.String sql)
throws java.sql.SQLException
CallableStatement from the pool.prepareCall in interface java.sql.ConnectionprepareCall in class DelegatingConnectionsql - the sql string used to define the CallableStatementPoolableCallableStatementjava.sql.SQLExceptionpublic java.sql.CallableStatement prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency)
throws java.sql.SQLException
CallableStatement from the pool.prepareCall in interface java.sql.ConnectionprepareCall in class DelegatingConnectionsql - the sql string used to define the CallableStatementresultSetType - result set typeresultSetConcurrency - result set concurrencyPoolableCallableStatementjava.sql.SQLExceptionpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
throws java.sql.SQLException
PreparedStatement from the pool.prepareStatement in interface java.sql.ConnectionprepareStatement in class DelegatingConnectionsql - the sql string used to define the PreparedStatementresultSetType - result set typeresultSetConcurrency - result set concurrencyresultSetHoldability - result set holdabilityPoolablePreparedStatementjava.sql.SQLExceptionpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql,
int[] columnIndexes)
throws java.sql.SQLException
PreparedStatement from the pool.prepareStatement in interface java.sql.ConnectionprepareStatement in class DelegatingConnectionsql - the sql string used to define the PreparedStatementcolumnIndexes - column indexesPoolablePreparedStatementjava.sql.SQLExceptionpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql,
java.lang.String[] columnNames)
throws java.sql.SQLException
PreparedStatement from the pool.prepareStatement in interface java.sql.ConnectionprepareStatement in class DelegatingConnectionsql - the sql string used to define the PreparedStatementcolumnNames - column namesPoolablePreparedStatementjava.sql.SQLExceptionpublic java.sql.CallableStatement prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
throws java.sql.SQLException
CallableStatement from the pool.prepareCall in interface java.sql.ConnectionprepareCall in class DelegatingConnectionsql - the sql string used to define the CallableStatementresultSetType - result set typeresultSetConcurrency - result set concurrencyresultSetHoldability - result set holdabilityPoolableCallableStatementjava.sql.SQLExceptionprotected PStmtKey createKey(java.lang.String sql)
sql - the sql string used to define the statementprotected PStmtKey createKey(java.lang.String sql, int[] columnIndexes)
protected PStmtKey createKey(java.lang.String sql, int autoGeneratedKeys)
protected PStmtKey createKey(java.lang.String sql, int resultSetType, int resultSetConcurrency)
sql - the sql string used to define the statementresultSetType - result set typeresultSetConcurrency - result set concurrencyprotected PStmtKey createKey(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
protected PStmtKey createKey(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability, PoolingConnection.StatementType statementType)
protected PStmtKey createKey(java.lang.String sql, int resultSetType, int resultSetConcurrency, PoolingConnection.StatementType stmtType)
sql - the sql string used to define the statementresultSetType - result set typeresultSetConcurrency - result set concurrencystmtType - statement typeprotected PStmtKey createKey(java.lang.String sql, PoolingConnection.StatementType stmtType)
sql - the sql string used to define the statementstmtType - statement typeprotected PStmtKey createKey(java.lang.String sql, java.lang.String[] columnNames)
sql - the sql string used to define the statementcolumnNames - column namesprotected java.lang.String normalizeSQL(java.lang.String sql)
public DelegatingPreparedStatement makeObject(PStmtKey key) throws java.lang.Exception
KeyedPoolableObjectFactory method for creating
PoolablePreparedStatements or PoolableCallableStatements.
The stmtType field in the key determines whether
a PoolablePreparedStatement or PoolableCallableStatement is created.makeObject in interface KeyedPoolableObjectFactory<PStmtKey,DelegatingPreparedStatement>key - the key for the PreparedStatement to be createdjava.lang.Exception - if there is a problem creating a new instance,
this will be propagated to the code requesting an object.createKey(String, int, int, StatementType)public void destroyObject(PStmtKey key, DelegatingPreparedStatement obj) throws java.lang.Exception
KeyedPoolableObjectFactory method for destroying
PoolablePreparedStatements and PoolableCallableStatements.
Closes the underlying statement.destroyObject in interface KeyedPoolableObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredobj - the pooled statement to be destroyed.java.lang.Exception - should be avoided as it may be swallowed by
the pool implementation.KeyedPoolableObjectFactory.validateObject(K, V),
KeyedObjectPool.invalidateObject(K, V)public boolean validateObject(PStmtKey key, DelegatingPreparedStatement obj)
KeyedPoolableObjectFactory method for validating
pooled statements. Currently always returns true.validateObject in interface KeyedPoolableObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredobj - ignoredpublic void activateObject(PStmtKey key, DelegatingPreparedStatement obj) throws java.lang.Exception
KeyedPoolableObjectFactory method for activating
pooled statements.activateObject in interface KeyedPoolableObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredobj - pooled statement to be activatedjava.lang.Exception - if there is a problem activating obj,
this exception may be swallowed by the pool.KeyedPoolableObjectFactory.destroyObject(K, V)public void passivateObject(PStmtKey key, DelegatingPreparedStatement obj) throws java.lang.Exception
KeyedPoolableObjectFactory method for passivating
PreparedStatements or CallableStatements.
Invokes PreparedStatement.clearParameters().passivateObject in interface KeyedPoolableObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredobj - a PreparedStatementjava.lang.Exception - if there is a problem passivating obj,
this exception may be swallowed by the pool.KeyedPoolableObjectFactory.destroyObject(K, V)public java.lang.String toString()
DelegatingConnectiontoString in class DelegatingConnectionCopyright © 2000-2019 Apache Software Foundation. All Rights Reserved.