|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface StatementInterceptor
Implement this interface to be placed "in between" query execution, so that you can influence it. (currently experimental). StatementInterceptors are "chainable" when configured by the user, the results returned by the "current" interceptor will be passed on to the next on in the chain, from left-to-right order, as specified by the user in the JDBC configuration property "statementInterceptors".
Method Summary | |
---|---|
void |
destroy()
Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed. |
boolean |
executeTopLevelOnly()
Should the driver execute this interceptor only for the "original" top-level query, and not put it in the execution path for queries that may be executed from other interceptors? |
void |
init(Connection conn,
java.util.Properties props)
Called once per connection that wants to use the interceptor The properties are the same ones passed in in the URL or arguments to Driver.connect() or DriverManager.getConnection(). |
ResultSetInternalMethods |
postProcess(java.lang.String sql,
Statement interceptedStatement,
ResultSetInternalMethods originalResultSet,
Connection connection)
Called after the given statement has been sent to the server for processing. |
ResultSetInternalMethods |
preProcess(java.lang.String sql,
Statement interceptedStatement,
Connection connection)
Called before the given statement is going to be sent to the server for processing. |
Method Detail |
---|
void init(Connection conn, java.util.Properties props) throws java.sql.SQLException
init
in interface Extension
conn
- the connection for which this interceptor is being createdprops
- configuration values as passed to the connection. Note that
in order to support javax.sql.DataSources, configuration properties specific
to an interceptor must be passed via setURL() on the
DataSource. StatementInterceptor properties are not exposed via
accessor/mutator methods on DataSources.
java.sql.SQLException
- should be thrown if the the StatementInterceptor
can not initialize itself.ResultSetInternalMethods preProcess(java.lang.String sql, Statement interceptedStatement, Connection connection) throws java.sql.SQLException
sql
- the SQL representation of the statementinterceptedStatement
- the actual statement instance being interceptedconnection
- the connection the statement is using (passed in to make
thread-safe implementations straightforward)
java.sql.SQLException
- if an error occurs during executionResultSetInternalMethods
ResultSetInternalMethods postProcess(java.lang.String sql, Statement interceptedStatement, ResultSetInternalMethods originalResultSet, Connection connection) throws java.sql.SQLException
sql
- the SQL representation of the statementinterceptedStatement
- the actual statement instance being interceptedconnection
- the connection the statement is using (passed in to make
thread-safe implementations straightforward)
java.sql.SQLException
- if an error occurs during executionResultSetInternalMethods
boolean executeTopLevelOnly()
true
for this method, it must ensure
that it does not cause infinite recursion.
void destroy()
destroy
in interface Extension
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |