public class StatementCache extends StatementDecoratorInterceptor
PreparedStatement
and/or
CallableStatement
instances on a connection.Modifier and Type | Class and Description |
---|---|
protected class |
StatementCache.CachedStatement |
StatementDecoratorInterceptor.ResultSetProxy, StatementDecoratorInterceptor.StatementProxy<T extends Statement>
Modifier and Type | Field and Description |
---|---|
protected static String[] |
ALL_TYPES |
protected static String[] |
CALLABLE_TYPE |
protected static String[] |
NO_TYPE |
protected static String[] |
PREPARED_TYPE |
protected static String |
STATEMENT_CACHE_ATTR |
constructors, resultSetConstructor
CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, EXECUTE_QUERY, EXECUTE_TYPES, EXECUTE_UPDATE, PREPARE_CALL, PREPARE_CALL_IDX, PREPARE_STATEMENT, PREPARE_STATEMENT_IDX, STATEMENT_TYPE_COUNT, STATEMENT_TYPES
CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL
Constructor and Description |
---|
StatementCache() |
Modifier and Type | Method and Description |
---|---|
boolean |
cacheStatement(StatementCache.CachedStatement proxy) |
void |
closeStatement(StatementCache.CachedStatement st) |
protected Object |
createDecorator(Object proxy,
Method method,
Object[] args,
Object statement,
Constructor<?> constructor,
String sql)
Creates a proxy for a Statement.
|
void |
disconnected(ConnectionPool parent,
PooledConnection con,
boolean finalizing)
Called when
Connection.close() is called on the underlying connection. |
AtomicInteger |
getCacheSize() |
int |
getMaxCacheSize() |
String[] |
getTypes() |
Object |
invoke(Object proxy,
Method method,
Object[] args)
Gets invoked each time an operation on
Connection is invoked. |
boolean |
isCacheCallable() |
StatementCache.CachedStatement |
isCached(String sql) |
boolean |
isCachePrepared() |
void |
poolClosed(ConnectionPool pool)
This method is invoked by a connection pool when the pool is closed.
|
void |
poolStarted(ConnectionPool pool)
This method is invoked by a connection pool when the pool is first started up, usually when the first connection is requested.
|
boolean |
removeStatement(StatementCache.CachedStatement proxy) |
void |
reset(ConnectionPool parent,
PooledConnection con)
no-op for this interceptor. no state is stored.
|
void |
setProperties(Map<String,PoolProperties.InterceptorProperty> properties)
Called during the creation of an interceptor
The properties can be set during the configuration of an interceptor
Override this method to perform type casts between string values and object properties
|
closeInvoked, createStatement, getConstructor, getResultSetConstructor, isExecuteQuery, isExecuteQuery
isExecute, isStatement, process
compare, compare, getNext, getProperties, isUseEquals, setNext, setUseEquals
protected static final String[] ALL_TYPES
protected static final String[] CALLABLE_TYPE
protected static final String[] PREPARED_TYPE
protected static final String[] NO_TYPE
protected static final String STATEMENT_CACHE_ATTR
public boolean isCachePrepared()
public boolean isCacheCallable()
public int getMaxCacheSize()
public String[] getTypes()
public AtomicInteger getCacheSize()
public void setProperties(Map<String,PoolProperties.InterceptorProperty> properties)
JdbcInterceptor
setProperties
in class JdbcInterceptor
properties
- The propertiespublic void poolStarted(ConnectionPool pool)
JdbcInterceptor
poolStarted
in class JdbcInterceptor
pool
- - the pool that is being closed.public void poolClosed(ConnectionPool pool)
JdbcInterceptor
poolClosed
in class JdbcInterceptor
pool
- - the pool that is being closed.public void reset(ConnectionPool parent, PooledConnection con)
AbstractCreateStatementInterceptor
reset
in class AbstractCreateStatementInterceptor
parent
- - the connection pool owning the connectioncon
- - the pooled connectionpublic void disconnected(ConnectionPool parent, PooledConnection con, boolean finalizing)
JdbcInterceptor
Connection.close()
is called on the underlying connection.
This is to notify the interceptors, that the physical connection has been released.
Implementation of this method should be thought through with care, as no actions should trigger an exception.disconnected
in class JdbcInterceptor
parent
- - the connection pool that this connection belongs tocon
- - the pooled connection that holds this connectionfinalizing
- - if this connection is finalizing. True means that the pooled connection will not reconnect the underlying connectionpublic void closeStatement(StatementCache.CachedStatement st)
protected Object createDecorator(Object proxy, Method method, Object[] args, Object statement, Constructor<?> constructor, String sql) throws InstantiationException, IllegalAccessException, InvocationTargetException
StatementDecoratorInterceptor
createDecorator
in class StatementDecoratorInterceptor
proxy
- The proxy object on which the method that triggered
the creation of the statement was called.method
- The method that was called on the proxyargs
- The arguments passed as part of the method call to
the proxystatement
- The statement object that is to be proxiedconstructor
- The constructor for the desired proxysql
- The sql of of the statementInstantiationException
- Couldn't instantiate objectIllegalAccessException
- Inaccessible constructorInvocationTargetException
- Exception thrown from constructorpublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable
AbstractCreateStatementInterceptor
Connection
is invoked.
invoke
in interface InvocationHandler
invoke
in class AbstractCreateStatementInterceptor
Throwable
public StatementCache.CachedStatement isCached(String sql)
public boolean cacheStatement(StatementCache.CachedStatement proxy)
public boolean removeStatement(StatementCache.CachedStatement proxy)
Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.