public class PoolingConnection extends DelegatingConnection<java.sql.Connection> implements KeyedPooledObjectFactory<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 |
|---|---|
protected static class |
PoolingConnection.StatementType
The possible statement types.
|
| Constructor and Description |
|---|
PoolingConnection(java.sql.Connection c)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
activateObject(PStmtKey key,
PooledObject<DelegatingPreparedStatement> p)
KeyedPooledObjectFactory method for activating
pooled statements. |
void |
close()
Close and free all
PreparedStatements or
CallableStatements 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 resultSetType,
int resultSetConcurrency)
Create a PStmtKey for the given arguments.
|
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.
|
void |
destroyObject(PStmtKey key,
PooledObject<DelegatingPreparedStatement> p)
KeyedPooledObjectFactory method for destroying
PoolablePreparedStatements and PoolableCallableStatements. |
PooledObject<DelegatingPreparedStatement> |
makeObject(PStmtKey key)
KeyedPooledObjectFactory method for creating
PoolablePreparedStatements or PoolableCallableStatements. |
protected java.lang.String |
normalizeSQL(java.lang.String sql)
Normalize the given SQL statement, producing a
canonical form that is semantically equivalent to the original.
|
void |
passivateObject(PStmtKey key,
PooledObject<DelegatingPreparedStatement> p)
|
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.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 resultSetType,
int resultSetConcurrency)
Create or obtain a
PreparedStatement from the pool. |
void |
setStatementPool(KeyedObjectPool<PStmtKey,DelegatingPreparedStatement> pool) |
java.lang.String |
toString()
Returns a string representation of the metadata associated with
the innermost delegate connection.
|
boolean |
validateObject(PStmtKey key,
PooledObject<DelegatingPreparedStatement> p)
KeyedPooledObjectFactory method for validating
pooled statements. |
abort, activate, checkOpen, clearCachedState, clearWarnings, closeInternal, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCacheState, getCatalog, getClientInfo, getClientInfo, getDefaultQueryTimeout, getDelegate, getDelegateInternal, getHoldability, getInnermostDelegate, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleException, innermostDelegateEquals, isClosed, isClosedInternal, isReadOnly, isValid, isWrapperFor, nativeSQL, passivate, prepareCall, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCacheState, setCatalog, setClientInfo, setClientInfo, setClosedInternal, setDefaultQueryTimeout, setDelegate, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, unwrapaddTrace, clearTrace, getLastUsed, getTrace, removeTrace, setLastUsed, setLastUsedpublic PoolingConnection(java.sql.Connection c)
c - the underlying Connection.public void setStatementPool(KeyedObjectPool<PStmtKey,DelegatingPreparedStatement> pool)
public void close()
throws java.sql.SQLException
PreparedStatements or
CallableStatements from the pool, and close the underlying
connection.close in interface java.lang.AutoCloseableclose in interface java.sql.Connectionclose in class DelegatingConnection<java.sql.Connection>java.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 DelegatingConnection<java.sql.Connection>sql - 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 DelegatingConnection<java.sql.Connection>java.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 DelegatingConnection<java.sql.Connection>sql - 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 DelegatingConnection<java.sql.Connection>sql - 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 DelegatingConnection<java.sql.Connection>sql - the sql string used to define the CallableStatementresultSetType - result set typeresultSetConcurrency - result set concurrencyPoolableCallableStatementjava.sql.SQLExceptionprotected 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, 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)
sql - the sql string used to define the statementprotected PStmtKey createKey(java.lang.String sql, PoolingConnection.StatementType stmtType)
sql - the SQL string used to define the statementstmtType - statement typeprotected java.lang.String normalizeSQL(java.lang.String sql)
public PooledObject<DelegatingPreparedStatement> makeObject(PStmtKey key) throws java.lang.Exception
KeyedPooledObjectFactory method for creating
PoolablePreparedStatements or PoolableCallableStatements.
The stmtType field in the key determines whether
a PoolablePreparedStatement or PoolableCallableStatement is created.makeObject in interface KeyedPooledObjectFactory<PStmtKey,DelegatingPreparedStatement>key - the key for the PreparedStatement to be createdPooledObject wrapping an instance that can
be served by the pool.java.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, PooledObject<DelegatingPreparedStatement> p) throws java.lang.Exception
KeyedPooledObjectFactory method for destroying
PoolablePreparedStatements and PoolableCallableStatements.
Closes the underlying statement.destroyObject in interface KeyedPooledObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredp - the wrapped pooled statement to be destroyed.java.lang.Exception - should be avoided as it may be swallowed by
the pool implementation.KeyedPooledObjectFactory.validateObject(K, org.apache.tomcat.dbcp.pool2.PooledObject<V>),
KeyedObjectPool.invalidateObject(K, V)public boolean validateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> p)
KeyedPooledObjectFactory method for validating
pooled statements. Currently always returns true.validateObject in interface KeyedPooledObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredp - ignoredtruepublic void activateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> p) throws java.lang.Exception
KeyedPooledObjectFactory method for activating
pooled statements.activateObject in interface KeyedPooledObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredp - wrapped pooled statement to be activatedjava.lang.Exception - if there is a problem activating obj,
this exception may be swallowed by the pool.KeyedPooledObjectFactory.destroyObject(K, org.apache.tomcat.dbcp.pool2.PooledObject<V>)public void passivateObject(PStmtKey key, PooledObject<DelegatingPreparedStatement> p) throws java.lang.Exception
KeyedPooledObjectFactory method for passivating
PreparedStatements or CallableStatements.
Invokes PreparedStatement.clearParameters().passivateObject in interface KeyedPooledObjectFactory<PStmtKey,DelegatingPreparedStatement>key - ignoredp - a wrapped PreparedStatementjava.lang.Exception - if there is a problem passivating obj,
this exception may be swallowed by the pool.KeyedPooledObjectFactory.destroyObject(K, org.apache.tomcat.dbcp.pool2.PooledObject<V>)public java.lang.String toString()
DelegatingConnectiontoString in class DelegatingConnection<java.sql.Connection>Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.