DelegatingStatement (Apache Tomcat 7.0.104 API Documentation)

org.apache.tomcat.dbcp.dbcp

## Class DelegatingStatement

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

- All Implemented Interfaces:
    AutoCloseable, Statement, Wrapper
  Direct Known Subclasses:
    DelegatingPreparedStatement

      public class DelegatingStatement
      extends AbandonedTrace
      implements Statement

  A base delegating implementation of `Statement`.

  All of the methods from the `Statement` interface simply check to see that the `Statement` 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.

  Author:
    Rodney Waldhoff, Glenn L. Nielsen, James House, Dirk Verbeeck

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `_closed`
    `protected DelegatingConnection` | `_conn` The connection that created me.
    `protected Statement` | `_stmt` My delegate.

    - ### 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
    `DelegatingStatement(DelegatingConnection c, Statement s)` Create a wrapper for the Statement which traces this Statement to the Connection which created it and the code which created it.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `activate()`
    `void` | `addBatch(String sql)`
    `void` | `cancel()`
    `protected void` | `checkOpen()`
    `void` | `clearBatch()`
    `void` | `clearWarnings()`
    `void` | `close()` Close this DelegatingStatement, and close any ResultSets that were not explicitly closed.
    `void` | `closeOnCompletion()`
    `boolean` | `equals(Object obj)` This method considers two objects to be equal if the underlying JDBC objects are equal.
    `boolean` | `execute(String sql)`
    `boolean` | `execute(String sql, int autoGeneratedKeys)`
    `boolean` | `execute(String sql, int[] columnIndexes)`
    `boolean` | `execute(String sql, String[] columnNames)`
    `int[]` | `executeBatch()`
    `ResultSet` | `executeQuery(String sql)`
    `int` | `executeUpdate(String sql)`
    `int` | `executeUpdate(String sql, int autoGeneratedKeys)`
    `int` | `executeUpdate(String sql, int[] columnIndexes)`
    `int` | `executeUpdate(String sql, String[] columnNames)`
    `Connection` | `getConnection()`
    `Statement` | `getDelegate()` Returns my underlying `Statement`.
    `int` | `getFetchDirection()`
    `int` | `getFetchSize()`
    `ResultSet` | `getGeneratedKeys()`
    `Statement` | `getInnermostDelegate()` If my underlying `Statement` is not a `DelegatingStatement`, returns it, otherwise recursively invokes this method on my delegate.
    `int` | `getMaxFieldSize()`
    `int` | `getMaxRows()`
    `boolean` | `getMoreResults()`
    `boolean` | `getMoreResults(int current)`
    `int` | `getQueryTimeout()`
    `ResultSet` | `getResultSet()`
    `int` | `getResultSetConcurrency()`
    `int` | `getResultSetHoldability()`
    `int` | `getResultSetType()`
    `int` | `getUpdateCount()`
    `SQLWarning` | `getWarnings()`
    `protected void` | `handleException(SQLException e)`
    `int` | `hashCode()`
    `boolean` | `isClosed()`
    `boolean` | `isCloseOnCompletion()`
    `boolean` | `isPoolable()`
    `boolean` | `isWrapperFor(Class<?> iface)`
    `void` | `passivate()`
    `void` | `setCursorName(String name)`
    `void` | `setDelegate(Statement s)` Sets my delegate.
    `void` | `setEscapeProcessing(boolean enable)`
    `void` | `setFetchDirection(int direction)`
    `void` | `setFetchSize(int rows)`
    `void` | `setMaxFieldSize(int max)`
    `void` | `setMaxRows(int max)`
    `void` | `setPoolable(boolean poolable)`
    `void` | `setQueryTimeout(int seconds)`
    `String` | `toString()` Returns a String representation of this object.
    `<T> T` | `unwrap(Class<T> iface)`

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

      `addTrace, clearTrace, getConfig, getLastUsed, getTrace, printStackTrace, removeTrace, setLastUsed, setLastUsed, setStackTrace`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### _stmt

          protected Statement _stmt

      My delegate.

    - #### _conn

          protected DelegatingConnection _conn

      The connection that created me.

    - #### _closed

          protected boolean _closed

  - ### Constructor Detail

    - #### DelegatingStatement

          public DelegatingStatement(DelegatingConnection c,
                             Statement s)

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

  - ### Method Detail

    - #### getDelegate

          public Statement getDelegate()

      Returns my underlying `Statement`.
      Returns:
        my underlying `Statement`.
      See Also:
        `getInnermostDelegate()`

    - #### equals

          public boolean equals(Object obj)

      This method considers two objects to be equal if the underlying JDBC objects are equal.

      If `obj` is a DelegatingStatement, this DelegatingStatement's `innermostDelegate` is compared with the innermost delegate of obj; otherwise obj itself is compared with the the Statement returned by `getInnermostDelegate()`.

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### getInnermostDelegate

          public Statement getInnermostDelegate()

      If my underlying `Statement` is not a `DelegatingStatement`, returns it, otherwise recursively invokes this method on my delegate.

      Hence this method will return the first delegate that is not a `DelegatingStatement` or `null` when no non-`DelegatingStatement` delegate can be found by transversing this chain.

      This method is useful when you may have nested `DelegatingStatement`s, and you want to make sure to obtain a "genuine" `Statement`.

      See Also:
        `getDelegate()`

    - #### setDelegate

          public void setDelegate(Statement s)

      Sets my delegate.

    - #### checkOpen

          protected void checkOpen()
                            throws SQLException

      Throws:
        `SQLException`

    - #### close

          public void close()
                     throws SQLException

      Close this DelegatingStatement, and close any ResultSets that were not explicitly closed.
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Statement`
      Throws:
        `SQLException`

    - #### handleException

          protected void handleException(SQLException e)
                                  throws SQLException

      Throws:
        `SQLException`

    - #### activate

          public void activate()
                        throws SQLException

      Throws:
        `SQLException`

    - #### passivate

          public void passivate()
                         throws SQLException

      Throws:
        `SQLException`

    - #### getConnection

          public Connection getConnection()
                                   throws SQLException

      Specified by:
        `getConnection` in interface `Statement`
      Throws:
        `SQLException`

    - #### executeQuery

          public ResultSet executeQuery(String sql)
                                 throws SQLException

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

    - #### getResultSet

          public ResultSet getResultSet()
                                 throws SQLException

      Specified by:
        `getResultSet` in interface `Statement`
      Throws:
        `SQLException`

    - #### executeUpdate

          public int executeUpdate(String sql)
                            throws SQLException

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

    - #### getMaxFieldSize

          public int getMaxFieldSize()
                              throws SQLException

      Specified by:
        `getMaxFieldSize` in interface `Statement`
      Throws:
        `SQLException`

    - #### setMaxFieldSize

          public void setMaxFieldSize(int max)
                               throws SQLException

      Specified by:
        `setMaxFieldSize` in interface `Statement`
      Throws:
        `SQLException`

    - #### getMaxRows

          public int getMaxRows()
                         throws SQLException

      Specified by:
        `getMaxRows` in interface `Statement`
      Throws:
        `SQLException`

    - #### setMaxRows

          public void setMaxRows(int max)
                          throws SQLException

      Specified by:
        `setMaxRows` in interface `Statement`
      Throws:
        `SQLException`

    - #### setEscapeProcessing

          public void setEscapeProcessing(boolean enable)
                                   throws SQLException

      Specified by:
        `setEscapeProcessing` in interface `Statement`
      Throws:
        `SQLException`

    - #### getQueryTimeout

          public int getQueryTimeout()
                              throws SQLException

      Specified by:
        `getQueryTimeout` in interface `Statement`
      Throws:
        `SQLException`

    - #### setQueryTimeout

          public void setQueryTimeout(int seconds)
                               throws SQLException

      Specified by:
        `setQueryTimeout` in interface `Statement`
      Throws:
        `SQLException`

    - #### cancel

          public void cancel()
                      throws SQLException

      Specified by:
        `cancel` in interface `Statement`
      Throws:
        `SQLException`

    - #### getWarnings

          public SQLWarning getWarnings()
                                 throws SQLException

      Specified by:
        `getWarnings` in interface `Statement`
      Throws:
        `SQLException`

    - #### clearWarnings

          public void clearWarnings()
                             throws SQLException

      Specified by:
        `clearWarnings` in interface `Statement`
      Throws:
        `SQLException`

    - #### setCursorName

          public void setCursorName(String name)
                             throws SQLException

      Specified by:
        `setCursorName` in interface `Statement`
      Throws:
        `SQLException`

    - #### execute

          public boolean execute(String sql)
                          throws SQLException

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

    - #### getUpdateCount

          public int getUpdateCount()
                             throws SQLException

      Specified by:
        `getUpdateCount` in interface `Statement`
      Throws:
        `SQLException`

    - #### getMoreResults

          public boolean getMoreResults()
                                 throws SQLException

      Specified by:
        `getMoreResults` in interface `Statement`
      Throws:
        `SQLException`

    - #### setFetchDirection

          public void setFetchDirection(int direction)
                                 throws SQLException

      Specified by:
        `setFetchDirection` in interface `Statement`
      Throws:
        `SQLException`

    - #### getFetchDirection

          public int getFetchDirection()
                                throws SQLException

      Specified by:
        `getFetchDirection` in interface `Statement`
      Throws:
        `SQLException`

    - #### setFetchSize

          public void setFetchSize(int rows)
                            throws SQLException

      Specified by:
        `setFetchSize` in interface `Statement`
      Throws:
        `SQLException`

    - #### getFetchSize

          public int getFetchSize()
                           throws SQLException

      Specified by:
        `getFetchSize` in interface `Statement`
      Throws:
        `SQLException`

    - #### getResultSetConcurrency

          public int getResultSetConcurrency()
                                      throws SQLException

      Specified by:
        `getResultSetConcurrency` in interface `Statement`
      Throws:
        `SQLException`

    - #### getResultSetType

          public int getResultSetType()
                               throws SQLException

      Specified by:
        `getResultSetType` in interface `Statement`
      Throws:
        `SQLException`

    - #### addBatch

          public void addBatch(String sql)
                        throws SQLException

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

    - #### clearBatch

          public void clearBatch()
                          throws SQLException

      Specified by:
        `clearBatch` in interface `Statement`
      Throws:
        `SQLException`

    - #### executeBatch

          public int[] executeBatch()
                             throws SQLException

      Specified by:
        `executeBatch` in interface `Statement`
      Throws:
        `SQLException`

    - #### toString

          public String toString()

      Returns a String representation of this object.
      Overrides:
        `toString` in class `Object`
      Returns:
        String
      Since:
        1.2.2

    - #### getMoreResults

          public boolean getMoreResults(int current)
                                 throws SQLException

      Specified by:
        `getMoreResults` in interface `Statement`
      Throws:
        `SQLException`

    - #### getGeneratedKeys

          public ResultSet getGeneratedKeys()
                                     throws SQLException

      Specified by:
        `getGeneratedKeys` in interface `Statement`
      Throws:
        `SQLException`

    - #### executeUpdate

          public int executeUpdate(String sql,
                          int autoGeneratedKeys)
                            throws SQLException

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

    - #### executeUpdate

          public int executeUpdate(String sql,
                          int[] columnIndexes)
                            throws SQLException

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

    - #### executeUpdate

          public int executeUpdate(String sql,
                          String[] columnNames)
                            throws SQLException

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

    - #### execute

          public boolean execute(String sql,
                        int autoGeneratedKeys)
                          throws SQLException

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

    - #### execute

          public boolean execute(String sql,
                        int[] columnIndexes)
                          throws SQLException

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

    - #### execute

          public boolean execute(String sql,
                        String[] columnNames)
                          throws SQLException

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

    - #### getResultSetHoldability

          public int getResultSetHoldability()
                                      throws SQLException

      Specified by:
        `getResultSetHoldability` in interface `Statement`
      Throws:
        `SQLException`

    - #### isClosed

          public boolean isClosed()
                           throws SQLException

      Specified by:
        `isClosed` in interface `Statement`
      Throws:
        `SQLException`

    - #### isWrapperFor

          public boolean isWrapperFor(Class<?> iface)
                               throws SQLException

      Specified by:
        `isWrapperFor` in interface `Wrapper`
      Throws:
        `SQLException`

    - #### unwrap

          public <T> T unwrap(Class<T> iface)
                   throws SQLException

      Specified by:
        `unwrap` in interface `Wrapper`
      Throws:
        `SQLException`

    - #### setPoolable

          public void setPoolable(boolean poolable)
                           throws SQLException

      Specified by:
        `setPoolable` in interface `Statement`
      Throws:
        `SQLException`

    - #### isPoolable

          public boolean isPoolable()
                             throws SQLException

      Specified by:
        `isPoolable` in interface `Statement`
      Throws:
        `SQLException`

    - #### closeOnCompletion

          public void closeOnCompletion()
                                 throws SQLException

      Specified by:
        `closeOnCompletion` in interface `Statement`
      Throws:
        `SQLException`

    - #### isCloseOnCompletion

          public boolean isCloseOnCompletion()
                                      throws SQLException

      Specified by:
        `isCloseOnCompletion` in interface `Statement`
      Throws:
        `SQLException`

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