org.apache.tomcat.dbcp.dbcp2

## Class PoolingDriver

- java.lang.Object
- - org.apache.tomcat.dbcp.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 and 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 and Description
    --- | ---
    `` | `PoolingDriver()` Constructs a new driver with `accessToUnderlyingConnectionAllowed` enabled.
    `protected` | `PoolingDriver(boolean accessToUnderlyingConnectionAllowed)` For unit testing purposes.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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

    - #### isAccessToUnderlyingConnectionAllowed

          protected boolean isAccessToUnderlyingConnectionAllowed()

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

    - #### 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.

    - #### registerPool

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

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

    - #### 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.

    - #### getPoolNames

          public String[] getPoolNames()

      Gets the pool names.
      Returns:
        the pool names.

    - #### acceptsURL

          public boolean acceptsURL(String url)
                             throws SQLException

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

    - #### connect

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

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

    - #### getParentLogger

          public Logger getParentLogger()
                                 throws SQLFeatureNotSupportedException

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

    - #### 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

    - #### getMajorVersion

          public int getMajorVersion()

      Specified by:
        `getMajorVersion` in interface `Driver`

    - #### getMinorVersion

          public int getMinorVersion()

      Specified by:
        `getMinorVersion` in interface `Driver`

    - #### jdbcCompliant

          public boolean jdbcCompliant()

      Specified by:
        `jdbcCompliant` in interface `Driver`

    - #### getPropertyInfo

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

      Specified by:
        `getPropertyInfo` in interface `Driver`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.