| com.mysql.jdbc.StatementInterceptor
StatementInterceptor | public interface StatementInterceptor (Code) | | 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".
version: $Id: $ |
Method Summary | |
abstract public 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?
If an interceptor issues queries using the connection it was created for,
and does not return true for this method, it must ensure
that it does not cause infinite recursion. | abstract public void | init(Connection conn, 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().
Parameters: conn - the connection for which this interceptor is being created Parameters: props - configuration values as passed to the connection. | abstract public ResultSetInternalMethods | postProcess(String sql, Statement interceptedStatement, ResultSetInternalMethods originalResultSet, Connection connection) Called after the given statement has been sent to the server
for processing.
Interceptors are free to inspect the "original" result set, and if a
different result set is returned by the interceptor, it is used in place
of the "original" result set. | abstract public ResultSetInternalMethods | preProcess(String sql, Statement interceptedStatement, Connection connection) Called before the given statement is going to be sent to the
server for processing. |
executeTopLevelOnly | abstract public boolean executeTopLevelOnly()(Code) | | 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?
If an interceptor issues queries using the connection it was created for,
and does not return true for this method, it must ensure
that it does not cause infinite recursion.
true if the driver should ensure that this interceptor is onlyexecuted for the top-level "original" query. |
init | abstract public void init(Connection conn, Properties props) throws SQLException(Code) | | 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().
Parameters: conn - the connection for which this interceptor is being created Parameters: props - configuration values as passed to the connection. Note thatin order to support javax.sql.DataSources, configuration properties specificto an interceptor must be passed via setURL() on theDataSource. StatementInterceptor properties are not exposed via accessor/mutator methods on DataSources. throws: SQLException - should be thrown if the the StatementInterceptorcan not initialize itself. |
postProcess | abstract public ResultSetInternalMethods postProcess(String sql, Statement interceptedStatement, ResultSetInternalMethods originalResultSet, Connection connection) throws SQLException(Code) | | Called after the given statement has been sent to the server
for processing.
Interceptors are free to inspect the "original" result set, and if a
different result set is returned by the interceptor, it is used in place
of the "original" result set. (the result set returned by the interceptor
must implement the interface
com.mysql.jdbc.ResultSetInternalMethods).
This method will be called while the connection-level mutex is held, so
it will only be called from one thread at a time.
Parameters: sql - the SQL representation of the statement Parameters: interceptedStatement - the actual statement instance being intercepted Parameters: connection - the connection the statement is using (passed in to makethread-safe implementations straightforward) a result set that should be returned to the application insteadof results that are created from actual execution of the intercepted statement. throws: SQLException - if an error occurs during execution See Also: com.mysql.jdbc.ResultSetInternalMethods |
preProcess | abstract public ResultSetInternalMethods preProcess(String sql, Statement interceptedStatement, Connection connection) throws SQLException(Code) | | Called before the given statement is going to be sent to the
server for processing.
Interceptors are free to return a result set (which must implement the
interface com.mysql.jdbc.ResultSetInternalMethods), and if so,
the server will not execute the query, and the given result set will be
returned to the application instead.
This method will be called while the connection-level mutex is held, so
it will only be called from one thread at a time.
Parameters: sql - the SQL representation of the statement Parameters: interceptedStatement - the actual statement instance being intercepted Parameters: connection - the connection the statement is using (passed in to makethread-safe implementations straightforward) a result set that should be returned to the application insteadof results that are created from actual execution of the intercepted statement. throws: SQLException - if an error occurs during execution See Also: com.mysql.jdbc.ResultSetInternalMethods |
|
|