PoolableCallableStatement (Apache Tomcat 9.0.117 API Documentation)
Description: declaration: package: org.apache.tomcat.dbcp.dbcp2, class: PoolableCallableStatement

# Class PoolableCallableStatement

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.DelegatingCallableStatement
org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement

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

public class PoolableCallableStatement extends DelegatingCallableStatement
A `DelegatingCallableStatement` that cooperates with `PoolingConnection` to implement a pool of `CallableStatement`s.

The `close()` method returns this statement to its containing pool. (See `PoolingConnection`.)

Since:
  2.0
See Also:
  - `PoolingConnection`

- ## Field Summary

  ### Fields inherited from interface 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
  `PoolableCallableStatement(CallableStatement callableStatement, PStmtKey key, KeyedObjectPool<PStmtKey, DelegatingPreparedStatement> pool, DelegatingConnection<Connection> connection)`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `activate()`
  Activates after retrieval from the pool.
  `void`
  `close()`
  Returns the CallableStatement to the pool.
  `void`
  `passivate()`
  Passivates to prepare for return to the pool.

  ### Methods inherited from class DelegatingCallableStatement

  `getArray, getArray, getBigDecimal, getBigDecimal, getBigDecimal, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getDate, getDate, getDate, getDate, getDouble, getDouble, getFloat, getFloat, getInt, getInt, getLong, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getURL, getURL, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, 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, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setURL, wasNull`

  ### Methods inherited from class DelegatingPreparedStatement

  `addBatch, 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 DelegatingStatement

  `addBatch, cancel, checkOpen, clearBatch, 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 AbandonedTrace

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

  ### Methods inherited from class Object

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

  ### Methods inherited from interface PreparedStatement

  `addBatch, clearParameters, execute, executeLargeUpdate, 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, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL`

  ### Methods inherited from interface Statement

  `addBatch, cancel, clearBatch, 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 Wrapper

  `isWrapperFor, unwrap`

- ## Constructor Details

  - ### PoolableCallableStatement

    public PoolableCallableStatement(CallableStatement callableStatement, PStmtKey key, KeyedObjectPool<PStmtKey, DelegatingPreparedStatement> pool, DelegatingConnection<Connection> connection)
    Constructs a new instance.
    Parameters:
      `callableStatement` - the underlying `CallableStatement`
      `key` - the key for this statement in the `KeyedObjectPool`
      `pool` - the `KeyedObjectPool` from which this CallableStatement was obtained
      `connection` - the `DelegatingConnection` that created this CallableStatement

- ## Method Details

  - ### activate

    public void activate() throws SQLException
    Activates after retrieval from the pool. Adds a trace for this CallableStatement to the Connection that created it.
    Overrides:
      `activate` in class `DelegatingStatement`
    Throws:
      `SQLException` - thrown by the delegating statement.
    Since:
      2.4.0 made public, was protected in 2.3.0.

  - ### close

    public void close() throws SQLException
    Returns the CallableStatement to the pool. If {`DelegatingStatement.isClosed()`, this is a No-op.
    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
    Passivates to prepare for return to the pool. Removes the trace associated with this CallableStatement from the Connection that created it. Also closes any associated ResultSets.
    Overrides:
      `passivate` in class `DelegatingStatement`
    Throws:
      `SQLException` - thrown by the delegating statement.
    Since:
      2.4.0 made public, was protected in 2.3.0.