Package org.apache.commons.dbcp2

## Class PoolingDriver

- java.lang.Object
- - org.apache.commons.dbcp2.PoolingDriver

- All Implemented Interfaces:
    `Driver`

      public class PoolingDriver
      extends Object
      implements Driver

  A `Driver` implementation that obtains `Connection`s from a registered `ObjectPool`.
  Since:
    2.0

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static int` | `MAJOR_VERSION` |
    `protected static int` | `MINOR_VERSION` |
    `protected static HashMap<String,​ObjectPool<? extends Connection>>` | `pools` | The map of registered pools.
    `static String` | `URL_PREFIX` | My URL prefix
    `protected static int` | `URL_PREFIX_LEN` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `PoolingDriver()` | Constructs a new driver with `accessToUnderlyingConnectionAllowed` enabled.
    `protected` | `PoolingDriver​(boolean accessToUnderlyingConnectionAllowed)` | For unit testing purposes.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `acceptsURL​(String url)` |
    `void` | `closePool​(String name)` | Closes a named pool.
    `Connection` | `connect​(String url, Properties info)` |
    `ObjectPool<? extends Connection>` | `getConnectionPool​(String name)` | Gets the connection pool for the given name.
    `int` | `getMajorVersion()` |
    `int` | `getMinorVersion()` |
    `Logger` | `getParentLogger()` |
    `String[]` | `getPoolNames()` | Gets the pool names.
    `DriverPropertyInfo[]` | `getPropertyInfo​(String url, Properties info)` |
    `void` | `invalidateConnection​(Connection conn)` | Invalidates the given connection.
    `protected boolean` | `isAccessToUnderlyingConnectionAllowed()` | Returns the value of the accessToUnderlyingConnectionAllowed property.
    `boolean` | `jdbcCompliant()` |
    `void` | `registerPool​(String name, ObjectPool<? extends Connection> pool)` | Registers a named pool.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### pools

          protected static final HashMap<String,​ObjectPool<? extends Connection>> pools

      The map of registered pools.

    - #### URL_PREFIX

          public static final String URL_PREFIX

      My URL prefix
      See Also:
        Constant Field Values

    - #### URL_PREFIX_LEN

          protected static final int URL_PREFIX_LEN

    - #### MAJOR_VERSION

          protected static final int MAJOR_VERSION

      See Also:
        Constant Field Values

    - #### MINOR_VERSION

          protected static final int MINOR_VERSION

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PoolingDriver

          public PoolingDriver()

      Constructs a new driver with `accessToUnderlyingConnectionAllowed` enabled.

    - #### PoolingDriver

          protected PoolingDriver​(boolean accessToUnderlyingConnectionAllowed)

      For unit testing purposes.
      Parameters:
        `accessToUnderlyingConnectionAllowed` - Do `DelegatingConnection`s created by this driver permit access to the delegate?

  - ### Method Detail

    - #### acceptsURL

          public boolean acceptsURL​(String url)
                             throws SQLException

      Specified by:
        `acceptsURL` in interface `Driver`
      Throws:
        `SQLException`

    - #### closePool

          public void closePool​(String name)
                         throws SQLException

      Closes a named pool.
      Parameters:
        `name` - The pool name.
      Throws:
        `SQLException` - Thrown when a problem is caught closing the pool.

    - #### connect

          public Connection connect​(String url,
                                    Properties info)
                             throws SQLException

      Specified by:
        `connect` in interface `Driver`
      Throws:
        `SQLException`

    - #### getConnectionPool

          public ObjectPool<? extends Connection> getConnectionPool​(String name)
                                                             throws SQLException

      Gets the connection pool for the given name.
      Parameters:
        `name` - The pool name
      Returns:
        The pool
      Throws:
        `SQLException` - Thrown when the named pool is not registered.

    - #### getMajorVersion

          public int getMajorVersion()

      Specified by:
        `getMajorVersion` in interface `Driver`

    - #### getMinorVersion

          public int getMinorVersion()

      Specified by:
        `getMinorVersion` in interface `Driver`

    - #### getParentLogger

          public Logger getParentLogger()
                                 throws SQLFeatureNotSupportedException

      Specified by:
        `getParentLogger` in interface `Driver`
      Throws:
        `SQLFeatureNotSupportedException`

    - #### getPoolNames

          public String[] getPoolNames()

      Gets the pool names.
      Returns:
        the pool names.

    - #### getPropertyInfo

          public DriverPropertyInfo[] getPropertyInfo​(String url,
                                                      Properties info)

      Specified by:
        `getPropertyInfo` in interface `Driver`

    - #### invalidateConnection

          public void invalidateConnection​(Connection conn)
                                    throws SQLException

      Invalidates the given connection.
      Parameters:
        `conn` - connection to invalidate
      Throws:
        `SQLException` - if the connection is not a `PoolGuardConnectionWrapper` or an error occurs invalidating the connection

    - #### isAccessToUnderlyingConnectionAllowed

          protected boolean isAccessToUnderlyingConnectionAllowed()

      Returns the value of the accessToUnderlyingConnectionAllowed property.
      Returns:
        true if access to the underlying is allowed, false otherwise.

    - #### jdbcCompliant

          public boolean jdbcCompliant()

      Specified by:
        `jdbcCompliant` in interface `Driver`

    - #### registerPool

          public void registerPool​(String name,
                                   ObjectPool<? extends Connection> pool)

      Registers a named pool.
      Parameters:
        `name` - The pool name.
        `pool` - The pool.