Package org.apache.commons.dbcp
Class PoolingConnection
java.lang.Object
org.apache.commons.dbcp.AbandonedTrace
org.apache.commons.dbcp.DelegatingConnection
org.apache.commons.dbcp.PoolingConnection
- All Implemented Interfaces:
AutoCloseable
,Connection
,Wrapper
,org.apache.commons.pool.KeyedPoolableObjectFactory
public class PoolingConnection
extends DelegatingConnection
implements Connection, org.apache.commons.pool.KeyedPoolableObjectFactory
A
DelegatingConnection
that pools PreparedStatement
s.
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
.)
- Version:
- $Revision: 885261 $ $Date: 2009-11-29 15:07:02 -0500 (Sun, 29 Nov 2009) $
- Author:
- Rodney Waldhoff, Dirk Verbeeck
- See Also:
-
Field Summary
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor.PoolingConnection
(Connection c, org.apache.commons.pool.KeyedObjectPool pool) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
activateObject
(Object key, Object obj) KeyedPoolableObjectFactory
method for activating pooled statements.void
close()
Close and free allPreparedStatement
s orCallableStatement
from the pool, and close the underlying connection.void
destroyObject
(Object key, Object obj) KeyedPoolableObjectFactory
method for destroying PoolablePreparedStatements and PoolableCallableStatements.int
makeObject
(Object obj) KeyedPoolableObjectFactory
method for creatingPoolablePreparedStatement
s orPoolableCallableStatement
s.void
passivateObject
(Object key, Object obj) prepareCall
(String sql) Create or obtain aCallableStatement
from the pool.prepareCall
(String sql, int resultSetType, int resultSetConcurrency) Create or obtain aCallableStatement
from the pool.prepareStatement
(String sql) Create or obtain aPreparedStatement
from the pool.prepareStatement
(String sql, int resultSetType, int resultSetConcurrency) Create or obtain aPreparedStatement
from the pool.void
setNetworkTimeout
(Executor executor, int milliseconds) void
toString()
Returns a string representation of the metadata associated with the innnermost delegate connection.boolean
validateObject
(Object key, Object obj) KeyedPoolableObjectFactory
method for validating pooled statements.Methods inherited from class org.apache.commons.dbcp.DelegatingConnection
clearWarnings, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, equals, getAutoCommit, getCatalog, getClientInfo, getClientInfo, getDelegate, getHoldability, getInnermostDelegate, getMetaData, getTransactionIsolation, getTypeMap, getWarnings, hashCode, innermostDelegateEquals, isClosed, isReadOnly, isValid, isWrapperFor, nativeSQL, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCatalog, setClientInfo, setClientInfo, setDelegate, setHoldability, setReadOnly, setSavepoint, setSavepoint, setTransactionIsolation, setTypeMap, unwrap
Methods inherited from class org.apache.commons.dbcp.AbandonedTrace
printStackTrace
Methods inherited from interface java.sql.Connection
beginRequest, clearWarnings, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, endRequest, getAutoCommit, getCatalog, getClientInfo, getClientInfo, getHoldability, getMetaData, getTransactionIsolation, getTypeMap, getWarnings, isClosed, isReadOnly, isValid, nativeSQL, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCatalog, setClientInfo, setClientInfo, setHoldability, setReadOnly, setSavepoint, setSavepoint, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid, setTransactionIsolation, setTypeMap
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
Constructor Details
-
PoolingConnection
Constructor.- Parameters:
c
- the underlyingConnection
.
-
PoolingConnection
Constructor.- Parameters:
c
- the underlyingConnection
.pool
-KeyedObjectPool
ofPreparedStatement
s andCallableStatement
s.
-
-
Method Details
-
close
Close and free allPreparedStatement
s orCallableStatement
from the pool, and close the underlying connection.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceConnection
- Overrides:
close
in classDelegatingConnection
- Throws:
SQLException
-
prepareStatement
Create or obtain aPreparedStatement
from the pool.- Specified by:
prepareStatement
in interfaceConnection
- Overrides:
prepareStatement
in classDelegatingConnection
- Parameters:
sql
- the sql string used to define the PreparedStatement- Returns:
- a
PoolablePreparedStatement
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException Create or obtain aPreparedStatement
from the pool.- Specified by:
prepareStatement
in interfaceConnection
- Overrides:
prepareStatement
in classDelegatingConnection
- Parameters:
sql
- the sql string used to define the PreparedStatementresultSetType
- result set typeresultSetConcurrency
- result set concurrency- Returns:
- a
PoolablePreparedStatement
- Throws:
SQLException
-
prepareCall
Create or obtain aCallableStatement
from the pool.- Specified by:
prepareCall
in interfaceConnection
- Overrides:
prepareCall
in classDelegatingConnection
- Parameters:
sql
- the sql string used to define the CallableStatement- Returns:
- a
PoolableCallableStatement
- Throws:
SQLException
- Since:
- 1.3
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException Create or obtain aCallableStatement
from the pool.- Specified by:
prepareCall
in interfaceConnection
- Overrides:
prepareCall
in classDelegatingConnection
- Parameters:
sql
- the sql string used to define the CallableStatementresultSetType
- result set typeresultSetConcurrency
- result set concurrency- Returns:
- a
PoolableCallableStatement
- Throws:
SQLException
- Since:
- 1.3
-
makeObject
KeyedPoolableObjectFactory
method for creatingPoolablePreparedStatement
s orPoolableCallableStatement
s. ThestmtType
field in the key determines whether a PoolablePreparedStatement or PoolableCallableStatement is created.- Specified by:
makeObject
in interfaceorg.apache.commons.pool.KeyedPoolableObjectFactory
- Parameters:
obj
- the key for thePreparedStatement
to be created- Throws:
Exception
- See Also:
-
destroyObject
KeyedPoolableObjectFactory
method for destroying PoolablePreparedStatements and PoolableCallableStatements. Closes the underlying statement.- Specified by:
destroyObject
in interfaceorg.apache.commons.pool.KeyedPoolableObjectFactory
- Parameters:
key
- ignoredobj
- the pooled statement to be destroyed.- Throws:
Exception
-
validateObject
KeyedPoolableObjectFactory
method for validating pooled statements. Currently always returns true.- Specified by:
validateObject
in interfaceorg.apache.commons.pool.KeyedPoolableObjectFactory
- Parameters:
key
- ignoredobj
- ignored- Returns:
- true
-
activateObject
KeyedPoolableObjectFactory
method for activating pooled statements.- Specified by:
activateObject
in interfaceorg.apache.commons.pool.KeyedPoolableObjectFactory
- Parameters:
key
- ignoredobj
- pooled statement to be activated- Throws:
Exception
-
passivateObject
KeyedPoolableObjectFactory
method for passivatingPreparedStatement
s orCallableStatement
s. InvokesPreparedStatement.clearParameters()
.- Specified by:
passivateObject
in interfaceorg.apache.commons.pool.KeyedPoolableObjectFactory
- Parameters:
key
- ignoredobj
- aPreparedStatement
- Throws:
Exception
-
toString
Description copied from class:DelegatingConnection
Returns a string representation of the metadata associated with the innnermost delegate connection.- Overrides:
toString
in classDelegatingConnection
-
getNetworkTimeout
- Specified by:
getNetworkTimeout
in interfaceConnection
- Overrides:
getNetworkTimeout
in classDelegatingConnection
- Throws:
SQLException
-
setNetworkTimeout
- Specified by:
setNetworkTimeout
in interfaceConnection
- Overrides:
setNetworkTimeout
in classDelegatingConnection
- Throws:
SQLException
-
abort
- Specified by:
abort
in interfaceConnection
- Overrides:
abort
in classDelegatingConnection
- Throws:
SQLException
-
getSchema
- Specified by:
getSchema
in interfaceConnection
- Overrides:
getSchema
in classDelegatingConnection
- Throws:
SQLException
-
setSchema
- Specified by:
setSchema
in interfaceConnection
- Overrides:
setSchema
in classDelegatingConnection
- Throws:
SQLException
-