Class StatementDecoratorInterceptor
java.lang.Object
org.apache.tomcat.jdbc.pool.JdbcInterceptor
org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor
- All Implemented Interfaces:
InvocationHandler
- Direct Known Subclasses:
StatementCache
Implementation of JdbcInterceptor that proxies resultSets and statements.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected classClass to measure query execute time. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final Stringprotected static final String[]protected static Constructor<?> the constructor to create the resultSet proxiesFields inherited from class AbstractCreateStatementInterceptor
constructors, CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, EXECUTE_TYPES, EXECUTE_UPDATE, GET_STATEMENT, PREPARE_CALL, PREPARE_CALL_IDX, PREPARE_STATEMENT, PREPARE_STATEMENT_IDX, RESULTSET_IDX, STATEMENT_TYPE_COUNT, STATEMENT_TYPESFields inherited from class JdbcInterceptor
CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidMethod invoked when the operationConnection.close()is invoked.protected ObjectcreateDecorator(Object proxy, Method method, Object[] args, Object statement, Constructor<?> constructor, String sql) Creates a proxy for a Statement.createStatement(Object proxy, Method method, Object[] args, Object statement, long time) Creates a statement interceptor to monitor query response timesprotected Constructor<?> protected booleanisExecuteQuery(Method method) protected booleanisExecuteQuery(String methodName) protected booleanisResultSet(Method method, boolean process) Methods inherited from class AbstractCreateStatementInterceptor
getConstructor, invoke, isExecute, isStatement, process, resetMethods inherited from class JdbcInterceptor
compare, compare, disconnected, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals
-
Field Details
-
EXECUTE_QUERY
- See Also:
-
GET_GENERATED_KEYS
- See Also:
-
GET_RESULTSET
- See Also:
-
RESULTSET_TYPES
-
resultSetConstructor
the constructor to create the resultSet proxies
-
-
Constructor Details
-
StatementDecoratorInterceptor
public StatementDecoratorInterceptor()
-
-
Method Details
-
closeInvoked
public void closeInvoked()Description copied from class:AbstractCreateStatementInterceptorMethod invoked when the operationConnection.close()is invoked.- Specified by:
closeInvokedin classAbstractCreateStatementInterceptor
-
getResultSetConstructor
- Throws:
NoSuchMethodException
-
createStatement
public Object createStatement(Object proxy, Method method, Object[] args, Object statement, long time) Creates a statement interceptor to monitor query response times- Specified by:
createStatementin classAbstractCreateStatementInterceptor- Parameters:
proxy- the actual proxy objectmethod- the method that was called. It will be one of the methods defined inAbstractCreateStatementInterceptor.STATEMENT_TYPESargs- the arguments to the methodstatement- the statement that the underlying connection createdtime- Elapsed time- Returns:
- a
Statementobject
-
createDecorator
protected Object createDecorator(Object proxy, Method method, Object[] args, Object statement, Constructor<?> constructor, String sql) throws InstantiationException, IllegalAccessException, InvocationTargetException Creates a proxy for a Statement.- Parameters:
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 statement- Returns:
- A new proxy for the Statement
- Throws:
InstantiationException- Couldn't instantiate objectIllegalAccessException- Inaccessible constructorInvocationTargetException- Exception thrown from constructor
-
isExecuteQuery
-
isExecuteQuery
-
isResultSet
-