ConnectionCustomizer (c3p0-0.9.5.5 API Documentation)
Date: 2019-12-11

com.mchange.v2.c3p0

## Interface ConnectionCustomizer

- All Known Implementing Classes:
    AbstractConnectionCustomizer, InitSqlConnectionCustomizer, TestConnectionCustomizer

      public interface ConnectionCustomizer

  Implementations of this interface should be immutable, and should offer public, no argument constructors.

  The methods are handed raw, physical database Connections, not c3p0-generated proxies.

  Although c3p0 will ensure this with respect to state controlled by standard JDBC methods, any modifications of vendor-specific state shold be made consistently so that all Connections in the pool are interchangable.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onAcquire(java.sql.Connection c, java.lang.String parentDataSourceIdentityToken)` Called immediately after a Connection is acquired from the underlying database for incorporation into the pool.
    `void` | `onCheckIn(java.sql.Connection c, java.lang.String parentDataSourceIdentityToken)` Called immediately after a Connection is checked in, prior to reincorporation into the pool.
    `void` | `onCheckOut(java.sql.Connection c, java.lang.String parentDataSourceIdentityToken)` Called immediately before a Connection is made available to a client upon checkout.
    `void` | `onDestroy(java.sql.Connection c, java.lang.String parentDataSourceIdentityToken)` Called immediately before a Connection is destroyed after being removed from the pool.

- - ### Method Detail

    - #### onAcquire

          void onAcquire(java.sql.Connection c,
                         java.lang.String parentDataSourceIdentityToken)
                  throws java.lang.Exception

      Called immediately after a Connection is acquired from the underlying database for incorporation into the pool.

      This method is only called once per Connection. If standard JDBC Connection properties are modified — specifically catalog, holdability, transactionIsolation, readOnly, and typeMap — those modifications will override defaults throughout the Connection's tenure in the pool.

      Throws:
        `java.lang.Exception`

    - #### onDestroy

          void onDestroy(java.sql.Connection c,
                         java.lang.String parentDataSourceIdentityToken)
                  throws java.lang.Exception

      Called immediately before a Connection is destroyed after being removed from the pool.
      Throws:
        `java.lang.Exception`

    - #### onCheckOut

          void onCheckOut(java.sql.Connection c,
                          java.lang.String parentDataSourceIdentityToken)
                   throws java.lang.Exception

      Called immediately before a Connection is made available to a client upon checkout.
      Throws:
        `java.lang.Exception`

    - #### onCheckIn

          void onCheckIn(java.sql.Connection c,
                         java.lang.String parentDataSourceIdentityToken)
                  throws java.lang.Exception

      Called immediately after a Connection is checked in, prior to reincorporation into the pool.
      Throws:
        `java.lang.Exception`