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.
- Author:
- Guillermo Fernandes
-
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 org.apache.tomcat.jdbc.pool.interceptor.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 org.apache.tomcat.jdbc.pool.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 org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
getConstructor, invoke, isExecute, isStatement, process, resetMethods inherited from class org.apache.tomcat.jdbc.pool.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
-