Extension
Date: 2018-05-06

com.mysql.jdbc

## Interface Extension

- All Known Subinterfaces:
    AuthenticationPlugin, BalanceStrategy, ConnectionLifecycleInterceptor, ExceptionInterceptor, LoadBalanceExceptionChecker, StatementInterceptor, StatementInterceptorV2
  All Known Implementing Classes:
    BestResponseTimeBalanceStrategy, ConnectionImpl.ExceptionInterceptorChain, LoadBalancedAutoCommitInterceptor, NdbLoadBalanceExceptionChecker, NoSubInterceptorWrapper, RandomBalanceStrategy, ReflectiveStatementInterceptorAdapter, SequentialBalanceStrategy, StandardLoadBalanceExceptionChecker, V1toV2StatementInterceptorAdapter

      public interface Extension

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `destroy()` Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.
    `void` | `init(Connection conn, java.util.Properties props)` Called once per connection that wants to use the extension The properties are the same ones passed in in the URL or arguments to Driver.connect() or DriverManager.getConnection().

- - ### Method Detail

    - #### init

          void init(Connection conn,
                  java.util.Properties props)
                    throws java.sql.SQLException

      Called once per connection that wants to use the extension 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 extension 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. Extension properties are not exposed via accessor/mutator methods on DataSources.
      Throws:
        `java.sql.SQLException` - should be thrown if the the Extension can not initialize itself.

    - #### destroy

          void destroy()

      Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.