An interceptor is a software design pattern that provides a transparent way to extend or modify some aspect of a program, similar to a user exit. No recompiling is required. With Connector/J, the interceptors are enabled and disabled by updating the connection string to refer to different sets of interceptor classes that you instantiate.
The connection properties that control the interceptors are explained in Section 5.1, “Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J”:
          connectionLifecycleInterceptors, where you
          specify the fully qualified names of classes that implement
          the
          com.mysql.jdbc.ConnectionLifecycleInterceptor
          interface. In these kinds of interceptor classes, you might
          log events such as rollbacks, measure the time between
          transaction start and end, or count events such as calls to
          setAutoCommit().
        
          exceptionInterceptors, where you specify
          the fully qualified names of classes that implement the
          com.mysql.jdbc.ExceptionInterceptor
          interface. In these kinds of interceptor classes, you might
          add extra diagnostic information to exceptions that can have
          multiple causes or indicate a problem with server settings.
          Because exceptionInterceptors classes are
          only called when handling a SQLException
          thrown from Connector/J code, they can be used even in
          production deployments without substantial performance
          overhead.
        
          statementInterceptors, where you specify
          the fully qualified names of classes that implement the
          com.mysql.jdbc.StatementInterceptorV2
          interface. In these kinds of interceptor classes, you might
          change or augment the processing done by certain kinds of
          statements, such as automatically checking for queried data in
          a memcached server, rewriting slow queries,
          logging information about statement execution, or route
          requests to remote servers.