程序包 com.mysql.cj

类 NoSubInterceptorWrapper

  • 所有已实现的接口:
    QueryInterceptor

    public class NoSubInterceptorWrapper
    extends Object
    implements QueryInterceptor
    Wraps query interceptors during driver startup so that they don't produce different result sets than we expect.
    • 构造器详细资料

      • NoSubInterceptorWrapper

        public NoSubInterceptorWrapper​(QueryInterceptor underlyingInterceptor)
    • 方法详细资料

      • destroy

        public void destroy()
        从接口复制的说明: QueryInterceptor
        Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.
        指定者:
        destroy 在接口中 QueryInterceptor
      • executeTopLevelOnly

        public boolean executeTopLevelOnly()
        从接口复制的说明: QueryInterceptor
        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.
        指定者:
        executeTopLevelOnly 在接口中 QueryInterceptor
        返回:
        true if the driver should ensure that this interceptor is only executed for the top-level "original" query.
      • init

        public QueryInterceptor init​(MysqlConnection conn,
                                     Properties props,
                                     Log log)
        从接口复制的说明: QueryInterceptor
        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().
        指定者:
        init 在接口中 QueryInterceptor
        参数:
        conn - the connection for which this interceptor is being created
        props - 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. QueryInterceptor properties are not exposed via accessor/mutator methods on DataSources.
        log - logger
        返回:
        QueryInterceptor
      • postProcess

        public <T extends Resultset> T postProcess​(java.util.function.Supplier<String> sql,
                                                   Query interceptedQuery,
                                                   T originalResultSet,
                                                   ServerSession serverSession)
        从接口复制的说明: QueryInterceptor
        Called after the given query 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. This method will be called while the connection-level mutex is held, so it will only be called from one thread at a time.
        指定者:
        postProcess 在接口中 QueryInterceptor
        类型参数:
        T - Resultset object
        参数:
        sql - the Supplier for SQL representation of the query
        interceptedQuery - the actual Query instance being intercepted
        originalResultSet - a Resultset created from query execution
        serverSession - ServerSession object after the query execution
        返回:
        a Resultset that should be returned to the application instead of results that are created from actual execution of the intercepted query.
      • preProcess

        public <T extends Resultset> T preProcess​(java.util.function.Supplier<String> sql,
                                                  Query interceptedQuery)
        从接口复制的说明: QueryInterceptor
        Called before the given query is going to be sent to the server for processing. Interceptors are free to return a result set (which must implement the interface Resultset), 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.
        指定者:
        preProcess 在接口中 QueryInterceptor
        类型参数:
        T - Resultset object
        参数:
        sql - the Supplier for SQL representation of the query
        interceptedQuery - the actual Query instance being intercepted
        返回:
        a Resultset that should be returned to the application instead of results that are created from actual execution of the intercepted query.
      • preProcess

        public <M extends Message> M preProcess​(M queryPacket)
        从接口复制的说明: QueryInterceptor
        Called before the given query packet is going to be sent to the server for processing. Interceptors are free to return a PacketPayload, and if so, the server will not execute the query, and the given PacketPayload 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.
        指定者:
        preProcess 在接口中 QueryInterceptor
        类型参数:
        M - Message object
        参数:
        queryPacket - original Message
        返回:
        processed Message
      • postProcess

        public <M extends Message> M postProcess​(M queryPacket,
                                                 M originalResponsePacket)
        从接口复制的说明: QueryInterceptor
        Called after the given query packet has been sent to the server for processing. Interceptors are free to return either a different PacketPayload than the originalResponsePacket or null. This method will be called while the connection-level mutex is held, so it will only be called from one thread at a time.
        指定者:
        postProcess 在接口中 QueryInterceptor
        类型参数:
        M - Message object
        参数:
        queryPacket - query Message
        originalResponsePacket - response Message
        返回:
        Message