Package org.apache.tomcat.dbcp.dbcp2

## Class PoolablePreparedStatement<K>

- java.lang.Object
- - org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
  - - org.apache.tomcat.dbcp.dbcp2.DelegatingStatement
    - - org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement
      - - org.apache.tomcat.dbcp.dbcp2.PoolablePreparedStatement<K>

Type Parameters:
  `K` - the key type

All Implemented Interfaces:
  `AutoCloseable`, `PreparedStatement`, `Statement`, `Wrapper`, `TrackedUse`

    public class PoolablePreparedStatement<K>
    extends DelegatingPreparedStatement

A `DelegatingPreparedStatement` that cooperates with `PoolingConnection` to implement a pool of `PreparedStatement`s.

My `close()` method returns me to my containing pool. (See `PoolingConnection`.)

Since:
  2.0
See Also:
  `PoolingConnection`

### Field Summary

### Fields inherited from interface java.sql.Statement

`CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO`

### Constructor Summary

Constructors
`PoolablePreparedStatement​(PreparedStatement stmt, K key, KeyedObjectPool<K,​PoolablePreparedStatement<K>> pool, DelegatingConnection<?> conn)` Constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `activate()`
`void` `addBatch()` Add batch.
`void` `clearBatch()` Clear Batch.
`void` `close()` Return me to my pool.
`void` `passivate()`

### Methods inherited from class org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement

`clearParameters, execute, executeLargeUpdate, executeQuery, executeUpdate, getMetaData, getParameterMetaData, prepareToReturn, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL, toString`

### Methods inherited from class org.apache.tomcat.dbcp.dbcp2.DelegatingStatement

`addBatch, cancel, checkOpen, clearWarnings, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, finalize, getConnection, getConnectionInternal, getDelegate, getFetchDirection, getFetchSize, getGeneratedKeys, getInnermostDelegate, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, handleException, isClosed, isClosedInternal, isCloseOnCompletion, isPoolable, isWrapperFor, setClosedInternal, setCursorName, setDelegate, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, unwrap`

### Methods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTrace

`addTrace, clearTrace, close, getLastUsed, getLastUsedInstant, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed, setLastUsed`

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

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

### Methods inherited from interface java.sql.Statement

`addBatch, cancel, clearWarnings, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Constructor Detail

#### PoolablePreparedStatement

    public PoolablePreparedStatement​(PreparedStatement stmt,
                                     K key,
                                     KeyedObjectPool<K,​PoolablePreparedStatement<K>> pool,
                                     DelegatingConnection<?> conn)

Constructor.

Parameters:
  `stmt` - my underlying `PreparedStatement`
  `key` - my key" as used by `KeyedObjectPool`
  `pool` - the `KeyedObjectPool` from which I was obtained.
  `conn` - the `Connection` from which I was created

### Method Detail

#### activate

    public void activate()
                  throws SQLException

Overrides:
  `activate` in class `DelegatingStatement`
Throws:
  `SQLException` - thrown by the delegating statement.

#### addBatch

    public void addBatch()
                  throws SQLException

Add batch.

Specified by:
  `addBatch` in interface `PreparedStatement`
Overrides:
  `addBatch` in class `DelegatingPreparedStatement`
Throws:
  `SQLException`

#### clearBatch

    public void clearBatch()
                    throws SQLException

Clear Batch.

Specified by:
  `clearBatch` in interface `Statement`
Overrides:
  `clearBatch` in class `DelegatingStatement`
Throws:
  `SQLException`

#### close

    public void close()
               throws SQLException

Return me to my pool.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Statement`
Overrides:
  `close` in class `DelegatingStatement`
Throws:
  `SQLException` - Ignored here, for subclasses.

#### passivate

    public void passivate()
                   throws SQLException

Overrides:
  `passivate` in class `DelegatingStatement`
Throws:
  `SQLException` - thrown by the delegating statement.