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
Constructor
Description
`PoolablePreparedStatement(PreparedStatement stmt, K key, KeyedObjectPool<K,PoolablePreparedStatement<K>> pool, DelegatingConnection<?> conn)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`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, executeQuery, executeUpdate, getMetaData, getParameterMetaData, 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, 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, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, finalize, getConnection, getConnectionInternal, getDelegate, getFetchDirection, getFetchSize, getGeneratedKeys, getInnermostDelegate, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, handleException, isClosed, isClosedInternal, isCloseOnCompletion, isPoolable, isWrapperFor, setClosedInternal, setCursorName, setDelegate, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, unwrap`

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

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

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

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

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

`executeLargeUpdate, setObject, setObject`

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

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

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

### activate

public void activate() throws SQLException

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

### passivate

public void passivate() throws SQLException

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