Package org.apache.tomcat.dbcp.dbcp2
Class PoolingConnection
java.lang.Object
org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
org.apache.tomcat.dbcp.dbcp2.DelegatingConnection<Connection>
org.apache.tomcat.dbcp.dbcp2.PoolingConnection
- All Implemented Interfaces:
- AutoCloseable,- Connection,- Wrapper,- KeyedPooledObjectFactory<PStmtKey,,- DelegatingPreparedStatement> - TrackedUse
public class PoolingConnection
extends DelegatingConnection<Connection>
implements KeyedPooledObjectFactory<PStmtKey,DelegatingPreparedStatement> 
A 
DelegatingConnection that pools PreparedStatements.
 
 The prepareStatement(org.apache.tomcat.dbcp.dbcp2.PStmtKey) and prepareCall(org.apache.tomcat.dbcp.dbcp2.PStmtKey) 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.)
 
- Since:
- 2.0
- See Also:
- 
Nested Class SummaryNested Classes
- 
Field SummaryFields inherited from interface java.sql.ConnectionTRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidactivateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) KeyedPooledObjectFactorymethod for activating pooled statements.voidclose()Closes and frees allPreparedStatements orCallableStatements from the pool, and close the underlying connection.voidNotification fromPoolableConnectionthat we returned to the pool.protected PStmtKeyCreates a PStmtKey for the given arguments.protected PStmtKeyCreates a PStmtKey for the given arguments.protected PStmtKeyCreates a PStmtKey for the given arguments.protected PStmtKeyCreates a PStmtKey for the given arguments.protected PStmtKeyCreates a PStmtKey for the given arguments.protected PStmtKeycreateKey(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability, PoolingConnection.StatementType statementType) Creates a PStmtKey for the given arguments.protected PStmtKeycreateKey(String sql, int resultSetType, int resultSetConcurrency, PoolingConnection.StatementType statementType) Creates a PStmtKey for the given arguments.protected PStmtKeyCreates a PStmtKey for the given arguments.protected PStmtKeycreateKey(String sql, PoolingConnection.StatementType statementType) Creates a PStmtKey for the given arguments.voiddestroyObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) KeyedPooledObjectFactorymethod for destroying PoolablePreparedStatements and PoolableCallableStatements.Gets the prepared statement pool.makeObject(PStmtKey key) KeyedPooledObjectFactorymethod for creatingPoolablePreparedStatements orPoolableCallableStatements.protected StringnormalizeSQL(String sql) Normalizes the given SQL statement, producing a canonical form that is semantically equivalent to the original.voidpassivateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) prepareCall(String sql) Creates or obtains aCallableStatementfrom the pool.prepareCall(String sql, int resultSetType, int resultSetConcurrency) Creates or obtains aCallableStatementfrom the pool.prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates or obtains aCallableStatementfrom the pool.prepareStatement(String sql) Creates or obtains aPreparedStatementfrom the pool.prepareStatement(String sql, int autoGeneratedKeys) prepareStatement(String sql, int[] columnIndexes) Creates or obtains aPreparedStatementfrom the pool.prepareStatement(String sql, int resultSetType, int resultSetConcurrency) Creates or obtains aPreparedStatementfrom the pool.prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates or obtains aPreparedStatementfrom the pool.prepareStatement(String sql, String[] columnNames) Creates or obtains aPreparedStatementfrom the pool.voidsetClearStatementPoolOnReturn(boolean clearStatementPoolOnReturn) Sets whether the pool of statements should be cleared when the connection is returned to its pool.voidSets the prepared statement pool.toString()Returns a string representation of the metadata associated with the innermost delegate connection.booleanvalidateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) KeyedPooledObjectFactorymethod for validating pooled statements.Methods inherited from class org.apache.tomcat.dbcp.dbcp2.DelegatingConnectionabort, activate, checkOpen, clearCachedState, clearWarnings, closeInternal, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCacheState, getCatalog, getClientInfo, getClientInfo, getDefaultQueryTimeout, getDefaultQueryTimeoutDuration, getDelegate, getDelegateInternal, getHoldability, getInnermostDelegate, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleException, handleExceptionNoThrow, innermostDelegateEquals, isClosed, isClosedInternal, isReadOnly, isValid, isValid, isWrapperFor, nativeSQL, passivate, releaseSavepoint, rollback, rollback, setAutoCommit, setCacheState, setCatalog, setClientInfo, setClientInfo, setClosedInternal, setDefaultQueryTimeout, setDefaultQueryTimeout, setDelegate, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, unwrapMethods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTraceaddTrace, clearTrace, close, getLastUsed, getLastUsedInstant, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed, setLastUsedMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.sql.ConnectionbeginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValidMethods inherited from interface org.apache.tomcat.dbcp.pool2.KeyedPooledObjectFactorydestroyObject
- 
Constructor Details- 
PoolingConnectionConstructor.- Parameters:
- connection- the underlying- Connection.
 
 
- 
- 
Method Details- 
activateObjectpublic void activateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) throws SQLException KeyedPooledObjectFactorymethod for activating pooled statements.- Specified by:
- activateObjectin interface- KeyedPooledObjectFactory<PStmtKey,- DelegatingPreparedStatement> 
- Parameters:
- key- ignored
- pooledObject- wrapped pooled statement to be activated
- Throws:
- SQLException
- See Also:
 
- 
closeCloses and frees allPreparedStatements orCallableStatements from the pool, and close the underlying connection.- Specified by:
- closein interface- AutoCloseable
- Specified by:
- closein interface- Connection
- Overrides:
- closein class- DelegatingConnection<Connection>
- Throws:
- SQLException- Ignored here, for subclasses.
 
- 
connectionReturnedToPoolNotification fromPoolableConnectionthat we returned to the pool.- Throws:
- SQLException- when- clearStatementPoolOnReturnis true and the statement pool could not be cleared
- Since:
- 2.8.0
 
- 
createKeyCreates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyCreates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- autoGeneratedKeys- A flag indicating whether auto-generated keys should be returned; one of- Statement.RETURN_GENERATED_KEYSor- Statement.NO_GENERATED_KEYS.
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyCreates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyprotected PStmtKey createKey(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- resultSetHoldability- result set holdability
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyprotected PStmtKey createKey(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability, PoolingConnection.StatementType statementType) Creates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- resultSetHoldability- result set holdability
- statementType- statement type
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyprotected PStmtKey createKey(String sql, int resultSetType, int resultSetConcurrency, PoolingConnection.StatementType statementType) Creates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- statementType- statement type
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyCreates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- columnIndexes- An array of column indexes indicating the columns that should be returned from the inserted row or rows.
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyCreates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- statementType- statement type
- Returns:
- the PStmtKey created for the given arguments.
 
- 
createKeyCreates a PStmtKey for the given arguments.- Parameters:
- sql- the SQL string used to define the statement
- columnNames- column names
- Returns:
- the PStmtKey created for the given arguments.
 
- 
destroyObjectpublic void destroyObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) throws SQLException KeyedPooledObjectFactorymethod for destroying PoolablePreparedStatements and PoolableCallableStatements. Closes the underlying statement.- Specified by:
- destroyObjectin interface- KeyedPooledObjectFactory<PStmtKey,- DelegatingPreparedStatement> 
- Parameters:
- key- ignored
- pooledObject- the wrapped pooled statement to be destroyed.
- Throws:
- SQLException
- See Also:
 
- 
getStatementPoolGets the prepared statement pool.- Returns:
- statement pool
- Since:
- 2.8.0
 
- 
makeObjectKeyedPooledObjectFactorymethod for creatingPoolablePreparedStatements orPoolableCallableStatements. ThestmtTypefield in the key determines whether a PoolablePreparedStatement or PoolableCallableStatement is created.- Specified by:
- makeObjectin interface- KeyedPooledObjectFactory<PStmtKey,- DelegatingPreparedStatement> 
- Parameters:
- key- the key for the- PreparedStatementto be created
- Returns:
- a PooledObjectwrapping an instance that can be served by the pool.
- Throws:
- SQLException
- See Also:
 
- 
normalizeSQLNormalizes the given SQL statement, producing a canonical form that is semantically equivalent to the original.- Parameters:
- sql- The statement to be normalized.
- Returns:
- The canonical form of the supplied SQL statement.
 
- 
passivateObjectpublic void passivateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> pooledObject) throws SQLException KeyedPooledObjectFactorymethod for passivatingPreparedStatements orCallableStatements. InvokesPreparedStatement.clearParameters().- Specified by:
- passivateObjectin interface- KeyedPooledObjectFactory<PStmtKey,- DelegatingPreparedStatement> 
- Parameters:
- key- ignored
- pooledObject- a wrapped- PreparedStatement
- Throws:
- SQLException
- See Also:
 
- 
prepareCallCreates or obtains aCallableStatementfrom the pool.- Specified by:
- prepareCallin interface- Connection
- Overrides:
- prepareCallin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the CallableStatement
- Returns:
- a PoolableCallableStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareCallpublic CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException Creates or obtains aCallableStatementfrom the pool.- Specified by:
- prepareCallin interface- Connection
- Overrides:
- prepareCallin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the CallableStatement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- Returns:
- a PoolableCallableStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareCallpublic CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException Creates or obtains aCallableStatementfrom the pool.- Specified by:
- prepareCallin interface- Connection
- Overrides:
- prepareCallin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the CallableStatement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- resultSetHoldability- result set holdability
- Returns:
- a PoolableCallableStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareStatementCreates or obtains aPreparedStatementfrom the pool.- Specified by:
- prepareStatementin interface- Connection
- Overrides:
- prepareStatementin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the PreparedStatement
- Returns:
- a PoolablePreparedStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Overrides:
- prepareStatementin class- DelegatingConnection<Connection>
- Throws:
- SQLException
 
- 
prepareStatementpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException Creates or obtains aPreparedStatementfrom the pool.- Specified by:
- prepareStatementin interface- Connection
- Overrides:
- prepareStatementin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the PreparedStatement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- Returns:
- a PoolablePreparedStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareStatementpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException Creates or obtains aPreparedStatementfrom the pool.- Specified by:
- prepareStatementin interface- Connection
- Overrides:
- prepareStatementin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the PreparedStatement
- resultSetType- result set type
- resultSetConcurrency- result set concurrency
- resultSetHoldability- result set holdability
- Returns:
- a PoolablePreparedStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareStatementCreates or obtains aPreparedStatementfrom the pool.- Specified by:
- prepareStatementin interface- Connection
- Overrides:
- prepareStatementin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the PreparedStatement
- columnIndexes- An array of column indexes indicating the columns that should be returned from the inserted row or rows.
- Returns:
- a PoolablePreparedStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
prepareStatementCreates or obtains aPreparedStatementfrom the pool.- Specified by:
- prepareStatementin interface- Connection
- Overrides:
- prepareStatementin class- DelegatingConnection<Connection>
- Parameters:
- sql- the SQL string used to define the PreparedStatement
- columnNames- column names
- Returns:
- a PoolablePreparedStatement
- Throws:
- SQLException- Wraps an underlying exception.
 
- 
setClearStatementPoolOnReturnpublic void setClearStatementPoolOnReturn(boolean clearStatementPoolOnReturn) Sets whether the pool of statements should be cleared when the connection is returned to its pool. Default is false.- Parameters:
- clearStatementPoolOnReturn- clear or not
- Since:
- 2.8.0
 
- 
setStatementPoolSets the prepared statement pool.- Parameters:
- pool- the prepared statement pool.
 
- 
toStringDescription copied from class:DelegatingConnectionReturns a string representation of the metadata associated with the innermost delegate connection.- Overrides:
- toStringin class- DelegatingConnection<Connection>
 
- 
validateObjectKeyedPooledObjectFactorymethod for validating pooled statements. Currently always returns true.- Specified by:
- validateObjectin interface- KeyedPooledObjectFactory<PStmtKey,- DelegatingPreparedStatement> 
- Parameters:
- key- ignored
- pooledObject- ignored
- Returns:
- true
 
 
-