Package 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
Description
`protected static final int`
`MAJOR_VERSION`
`protected static final int`
`MINOR_VERSION`
`protected static final HashMap<String,ObjectPool<? extends Connection>>`
`pools`
The map of registered pools.
`static final String`
`URL_PREFIX`
My URL prefix
`protected static final 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

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 Details

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

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

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