org.apache.tomcat.dbcp.dbcp2

## Class DelegatingPreparedStatement

- java.lang.Object
- - org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
  - - org.apache.tomcat.dbcp.dbcp2.DelegatingStatement
    - - org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement

- All Implemented Interfaces:
    AutoCloseable, PreparedStatement, Statement, Wrapper, TrackedUse
  Direct Known Subclasses:
    DelegatingCallableStatement, PoolablePreparedStatement

      public class DelegatingPreparedStatement
      extends DelegatingStatement
      implements PreparedStatement

  A base delegating implementation of `PreparedStatement`.

  All of the methods from the `PreparedStatement` interface simply check to see that the `PreparedStatement` is active, and call the corresponding method on the "delegate" provided in my constructor.

  Extends AbandonedTrace to implement Statement tracking and logging of code which created the Statement. Tracking the Statement ensures that the Connection which created it can close any open Statement's on Connection close.

  Since:
    2.0

- - ### 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 and Description
    `DelegatingPreparedStatement(DelegatingConnection<?> connection, PreparedStatement statement)` Create a wrapper for the Statement which traces this Statement to the Connection which created it and the code which created it.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBatch()`
    `void` | `clearParameters()`
    `boolean` | `execute()`
    `long` | `executeLargeUpdate()`
    `ResultSet` | `executeQuery()`
    `int` | `executeUpdate()`
    `ResultSetMetaData` | `getMetaData()`
    `ParameterMetaData` | `getParameterMetaData()`
    `void` | `setArray(int i, Array x)`
    `void` | `setAsciiStream(int parameterIndex, InputStream inputStream)`
    `void` | `setAsciiStream(int parameterIndex, InputStream x, int length)`
    `void` | `setAsciiStream(int parameterIndex, InputStream inputStream, long length)`
    `void` | `setBigDecimal(int parameterIndex, BigDecimal x)`
    `void` | `setBinaryStream(int parameterIndex, InputStream inputStream)`
    `void` | `setBinaryStream(int parameterIndex, InputStream x, int length)`
    `void` | `setBinaryStream(int parameterIndex, InputStream inputStream, long length)`
    `void` | `setBlob(int i, Blob x)`
    `void` | `setBlob(int parameterIndex, InputStream inputStream)`
    `void` | `setBlob(int parameterIndex, InputStream inputStream, long length)`
    `void` | `setBoolean(int parameterIndex, boolean x)`
    `void` | `setByte(int parameterIndex, byte x)`
    `void` | `setBytes(int parameterIndex, byte[] x)`
    `void` | `setCharacterStream(int parameterIndex, Reader reader)`
    `void` | `setCharacterStream(int parameterIndex, Reader reader, int length)`
    `void` | `setCharacterStream(int parameterIndex, Reader reader, long length)`
    `void` | `setClob(int i, Clob x)`
    `void` | `setClob(int parameterIndex, Reader reader)`
    `void` | `setClob(int parameterIndex, Reader reader, long length)`
    `void` | `setDate(int parameterIndex, Date x)`
    `void` | `setDate(int parameterIndex, Date x, Calendar cal)`
    `void` | `setDouble(int parameterIndex, double x)`
    `void` | `setFloat(int parameterIndex, float x)`
    `void` | `setInt(int parameterIndex, int x)`
    `void` | `setLong(int parameterIndex, long x)`
    `void` | `setNCharacterStream(int parameterIndex, Reader reader)`
    `void` | `setNCharacterStream(int parameterIndex, Reader value, long length)`
    `void` | `setNClob(int parameterIndex, NClob value)`
    `void` | `setNClob(int parameterIndex, Reader reader)`
    `void` | `setNClob(int parameterIndex, Reader reader, long length)`
    `void` | `setNString(int parameterIndex, String value)`
    `void` | `setNull(int parameterIndex, int sqlType)`
    `void` | `setNull(int paramIndex, int sqlType, String typeName)`
    `void` | `setObject(int parameterIndex, Object x)`
    `void` | `setObject(int parameterIndex, Object x, int targetSqlType)`
    `void` | `setObject(int parameterIndex, Object x, int targetSqlType, int scale)`
    `void` | `setObject(int parameterIndex, Object x, SQLType targetSqlType)`
    `void` | `setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength)`
    `void` | `setRef(int i, Ref x)`
    `void` | `setRowId(int parameterIndex, RowId value)`
    `void` | `setShort(int parameterIndex, short x)`
    `void` | `setSQLXML(int parameterIndex, SQLXML value)`
    `void` | `setString(int parameterIndex, String x)`
    `void` | `setTime(int parameterIndex, Time x)`
    `void` | `setTime(int parameterIndex, Time x, Calendar cal)`
    `void` | `setTimestamp(int parameterIndex, Timestamp x)`
    `void` | `setTimestamp(int parameterIndex, Timestamp x, Calendar cal)`
    `void` | `setUnicodeStream(int parameterIndex, InputStream x, int length)` Deprecated. Use setAsciiStream(), setCharacterStream() or setNCharacterStream()
    `void` | `setURL(int parameterIndex, URL x)`
    `String` | `toString()` Returns a String representation of this object.

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

      `activate, addBatch, cancel, checkOpen, clearBatch, clearWarnings, close, 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, passivate, setClosedInternal, setCursorName, setDelegate, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, unwrap`

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

      `addTrace, clearTrace, 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, clearBatch, clearWarnings, close, closeOnCompletion, 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, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

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

      `isWrapperFor, unwrap`

- - ### Constructor Detail

    - #### DelegatingPreparedStatement

          public DelegatingPreparedStatement(DelegatingConnection<?> connection,
                                             PreparedStatement statement)

      Create a wrapper for the Statement which traces this Statement to the Connection which created it and the code which created it.
      Parameters:
        `statement` - the `PreparedStatement` to delegate all calls to.
        `connection` - the `DelegatingConnection` that created this statement.

  - ### Method Detail

    - #### addBatch

          public void addBatch()
                        throws SQLException

      Specified by:
        `addBatch` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### clearParameters

          public void clearParameters()
                               throws SQLException

      Specified by:
        `clearParameters` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### execute

          public boolean execute()
                          throws SQLException

      Specified by:
        `execute` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### executeLargeUpdate

          public long executeLargeUpdate()
                                  throws SQLException

      Specified by:
        `executeLargeUpdate` in interface `PreparedStatement`
      Throws:
        `SQLException`
      Since:
        2.5.0

    - #### executeQuery

          public ResultSet executeQuery()
                                 throws SQLException

      Specified by:
        `executeQuery` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### executeUpdate

          public int executeUpdate()
                            throws SQLException

      Specified by:
        `executeUpdate` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### getMetaData

          public ResultSetMetaData getMetaData()
                                        throws SQLException

      Specified by:
        `getMetaData` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### getParameterMetaData

          public ParameterMetaData getParameterMetaData()
                                                 throws SQLException

      Specified by:
        `getParameterMetaData` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setArray

          public void setArray(int i,
                               Array x)
                        throws SQLException

      Specified by:
        `setArray` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setAsciiStream

          public void setAsciiStream(int parameterIndex,
                                     InputStream inputStream)
                              throws SQLException

      Specified by:
        `setAsciiStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setAsciiStream

          public void setAsciiStream(int parameterIndex,
                                     InputStream x,
                                     int length)
                              throws SQLException

      Specified by:
        `setAsciiStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setAsciiStream

          public void setAsciiStream(int parameterIndex,
                                     InputStream inputStream,
                                     long length)
                              throws SQLException

      Specified by:
        `setAsciiStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBigDecimal

          public void setBigDecimal(int parameterIndex,
                                    BigDecimal x)
                             throws SQLException

      Specified by:
        `setBigDecimal` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBinaryStream

          public void setBinaryStream(int parameterIndex,
                                      InputStream inputStream)
                               throws SQLException

      Specified by:
        `setBinaryStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBinaryStream

          public void setBinaryStream(int parameterIndex,
                                      InputStream x,
                                      int length)
                               throws SQLException

      Specified by:
        `setBinaryStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBinaryStream

          public void setBinaryStream(int parameterIndex,
                                      InputStream inputStream,
                                      long length)
                               throws SQLException

      Specified by:
        `setBinaryStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBlob

          public void setBlob(int i,
                              Blob x)
                       throws SQLException

      Specified by:
        `setBlob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBlob

          public void setBlob(int parameterIndex,
                              InputStream inputStream)
                       throws SQLException

      Specified by:
        `setBlob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBlob

          public void setBlob(int parameterIndex,
                              InputStream inputStream,
                              long length)
                       throws SQLException

      Specified by:
        `setBlob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBoolean

          public void setBoolean(int parameterIndex,
                                 boolean x)
                          throws SQLException

      Specified by:
        `setBoolean` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setByte

          public void setByte(int parameterIndex,
                              byte x)
                       throws SQLException

      Specified by:
        `setByte` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setBytes

          public void setBytes(int parameterIndex,
                               byte[] x)
                        throws SQLException

      Specified by:
        `setBytes` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setCharacterStream

          public void setCharacterStream(int parameterIndex,
                                         Reader reader)
                                  throws SQLException

      Specified by:
        `setCharacterStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setCharacterStream

          public void setCharacterStream(int parameterIndex,
                                         Reader reader,
                                         int length)
                                  throws SQLException

      Specified by:
        `setCharacterStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setCharacterStream

          public void setCharacterStream(int parameterIndex,
                                         Reader reader,
                                         long length)
                                  throws SQLException

      Specified by:
        `setCharacterStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setClob

          public void setClob(int i,
                              Clob x)
                       throws SQLException

      Specified by:
        `setClob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setClob

          public void setClob(int parameterIndex,
                              Reader reader)
                       throws SQLException

      Specified by:
        `setClob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setClob

          public void setClob(int parameterIndex,
                              Reader reader,
                              long length)
                       throws SQLException

      Specified by:
        `setClob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setDate

          public void setDate(int parameterIndex,
                              Date x)
                       throws SQLException

      Specified by:
        `setDate` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setDate

          public void setDate(int parameterIndex,
                              Date x,
                              Calendar cal)
                       throws SQLException

      Specified by:
        `setDate` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setDouble

          public void setDouble(int parameterIndex,
                                double x)
                         throws SQLException

      Specified by:
        `setDouble` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setFloat

          public void setFloat(int parameterIndex,
                               float x)
                        throws SQLException

      Specified by:
        `setFloat` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setInt

          public void setInt(int parameterIndex,
                             int x)
                      throws SQLException

      Specified by:
        `setInt` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setLong

          public void setLong(int parameterIndex,
                              long x)
                       throws SQLException

      Specified by:
        `setLong` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNCharacterStream

          public void setNCharacterStream(int parameterIndex,
                                          Reader reader)
                                   throws SQLException

      Specified by:
        `setNCharacterStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNCharacterStream

          public void setNCharacterStream(int parameterIndex,
                                          Reader value,
                                          long length)
                                   throws SQLException

      Specified by:
        `setNCharacterStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNClob

          public void setNClob(int parameterIndex,
                               NClob value)
                        throws SQLException

      Specified by:
        `setNClob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNClob

          public void setNClob(int parameterIndex,
                               Reader reader)
                        throws SQLException

      Specified by:
        `setNClob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNClob

          public void setNClob(int parameterIndex,
                               Reader reader,
                               long length)
                        throws SQLException

      Specified by:
        `setNClob` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNString

          public void setNString(int parameterIndex,
                                 String value)
                          throws SQLException

      Specified by:
        `setNString` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNull

          public void setNull(int parameterIndex,
                              int sqlType)
                       throws SQLException

      Specified by:
        `setNull` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setNull

          public void setNull(int paramIndex,
                              int sqlType,
                              String typeName)
                       throws SQLException

      Specified by:
        `setNull` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setObject

          public void setObject(int parameterIndex,
                                Object x)
                         throws SQLException

      Specified by:
        `setObject` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setObject

          public void setObject(int parameterIndex,
                                Object x,
                                int targetSqlType)
                         throws SQLException

      Specified by:
        `setObject` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setObject

          public void setObject(int parameterIndex,
                                Object x,
                                int targetSqlType,
                                int scale)
                         throws SQLException

      Specified by:
        `setObject` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setObject

          public void setObject(int parameterIndex,
                                Object x,
                                SQLType targetSqlType)
                         throws SQLException

      Specified by:
        `setObject` in interface `PreparedStatement`
      Throws:
        `SQLException`
      Since:
        2.5.0

    - #### setObject

          public void setObject(int parameterIndex,
                                Object x,
                                SQLType targetSqlType,
                                int scaleOrLength)
                         throws SQLException

      Specified by:
        `setObject` in interface `PreparedStatement`
      Throws:
        `SQLException`
      Since:
        2.5.0

    - #### setRef

          public void setRef(int i,
                             Ref x)
                      throws SQLException

      Specified by:
        `setRef` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setRowId

          public void setRowId(int parameterIndex,
                               RowId value)
                        throws SQLException

      Specified by:
        `setRowId` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setShort

          public void setShort(int parameterIndex,
                               short x)
                        throws SQLException

      Specified by:
        `setShort` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setSQLXML

          public void setSQLXML(int parameterIndex,
                                SQLXML value)
                         throws SQLException

      Specified by:
        `setSQLXML` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setString

          public void setString(int parameterIndex,
                                String x)
                         throws SQLException

      Specified by:
        `setString` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setTime

          public void setTime(int parameterIndex,
                              Time x)
                       throws SQLException

      Specified by:
        `setTime` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setTime

          public void setTime(int parameterIndex,
                              Time x,
                              Calendar cal)
                       throws SQLException

      Specified by:
        `setTime` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setTimestamp

          public void setTimestamp(int parameterIndex,
                                   Timestamp x)
                            throws SQLException

      Specified by:
        `setTimestamp` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setTimestamp

          public void setTimestamp(int parameterIndex,
                                   Timestamp x,
                                   Calendar cal)
                            throws SQLException

      Specified by:
        `setTimestamp` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setUnicodeStream

          @Deprecated
          public void setUnicodeStream(int parameterIndex,
                                                   InputStream x,
                                                   int length)
                                            throws SQLException

      Deprecated. Use setAsciiStream(), setCharacterStream() or setNCharacterStream()
      Specified by:
        `setUnicodeStream` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### setURL

          public void setURL(int parameterIndex,
                             URL x)
                      throws SQLException

      Specified by:
        `setURL` in interface `PreparedStatement`
      Throws:
        `SQLException`

    - #### toString

          public String toString()

      Returns a String representation of this object.
      Overrides:
        `toString` in class `DelegatingStatement`
      Returns:
        String

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