org.apache.commons.dbcp
Class DelegatingPreparedStatement

java.lang.Object
  |
  +--org.apache.commons.dbcp.AbandonedTrace
        |
        +--org.apache.commons.dbcp.DelegatingPreparedStatement
All Implemented Interfaces:
PreparedStatement, Statement
Direct Known Subclasses:
PoolablePreparedStatement

public class DelegatingPreparedStatement
extends AbandonedTrace
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.

Version:
$Revision: 1.15 $ $Date: 2003/10/09 21:04:44 $

Field Summary
protected  boolean _closed
           
protected  org.apache.commons.dbcp.DelegatingConnection _conn
          The connection that created me.
protected  PreparedStatement _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
DelegatingPreparedStatement(org.apache.commons.dbcp.DelegatingConnection c, PreparedStatement 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
protected  void activate()
           
 void addBatch()
           
 void addBatch(String sql)
           
 void cancel()
           
protected  void checkOpen()
           
 void clearBatch()
           
 void clearParameters()
           
 void clearWarnings()
           
 void close()
          Close this DelegatingPreparedStatement, and close any ResultSets that were not explicitly closed.
 boolean equals(Object obj)
           
 boolean execute()
           
 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()
           
 ResultSet executeQuery(String sql)
           
 int executeUpdate()
           
 int executeUpdate(String sql)
           
 int executeUpdate(String sql, int autoGeneratedKeys)
           
 int executeUpdate(String sql, int[] columnIndexes)
           
 int executeUpdate(String sql, String[] columnNames)
           
 Connection getConnection()
           
 PreparedStatement getDelegate()
          Returns my underlying PreparedStatement.
 int getFetchDirection()
           
 int getFetchSize()
           
 ResultSet getGeneratedKeys()
           
 PreparedStatement getInnermostDelegate()
          If my underlying PreparedStatement is not a DelegatingPreparedStatement, returns it, otherwise recursively invokes this method on my delegate.
 int getMaxFieldSize()
           
 int getMaxRows()
           
 ResultSetMetaData getMetaData()
           
 boolean getMoreResults()
           
 boolean getMoreResults(int current)
           
 ParameterMetaData getParameterMetaData()
           
 int getQueryTimeout()
           
 ResultSet getResultSet()
           
 int getResultSetConcurrency()
           
 int getResultSetHoldability()
           
 int getResultSetType()
           
 int getUpdateCount()
           
 SQLWarning getWarnings()
           
 int hashCode()
           
protected  boolean isClosed()
           
protected  void passivate()
           
 void setArray(int i, Array x)
           
 void setAsciiStream(int parameterIndex, InputStream x, int length)
           
 void setBigDecimal(int parameterIndex, BigDecimal x)
           
 void setBinaryStream(int parameterIndex, InputStream x, int length)
           
 void setBlob(int i, Blob x)
           
 void setBoolean(int parameterIndex, boolean x)
           
 void setByte(int parameterIndex, byte x)
           
 void setBytes(int parameterIndex, byte[] x)
           
 void setCharacterStream(int parameterIndex, Reader reader, int length)
           
 void setClob(int i, Clob x)
           
 void setCursorName(String name)
           
 void setDate(int parameterIndex, Date x)
           
 void setDate(int parameterIndex, Date x, Calendar cal)
           
 void setDelegate(PreparedStatement s)
          Sets my delegate.
 void setDouble(int parameterIndex, double x)
           
 void setEscapeProcessing(boolean enable)
           
 void setFetchDirection(int direction)
           
 void setFetchSize(int rows)
           
 void setFloat(int parameterIndex, float x)
           
 void setInt(int parameterIndex, int x)
           
 void setLong(int parameterIndex, long x)
           
 void setMaxFieldSize(int max)
           
 void setMaxRows(int max)
           
 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 setQueryTimeout(int seconds)
           
 void setRef(int i, Ref x)
           
 void setShort(int parameterIndex, short x)
           
 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.  
 void setURL(int parameterIndex, URL x)
           
 
Methods inherited from class org.apache.commons.dbcp.AbandonedTrace
addTrace, clearTrace, getConfig, getLastUsed, getTrace, printStackTrace, removeTrace, setLastUsed, setLastUsed, setStackTrace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_stmt

protected PreparedStatement _stmt
My delegate.


_conn

protected org.apache.commons.dbcp.DelegatingConnection _conn
The connection that created me.


_closed

protected boolean _closed
Constructor Detail

DelegatingPreparedStatement

public DelegatingPreparedStatement(org.apache.commons.dbcp.DelegatingConnection c,
                                   PreparedStatement 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 PreparedStatement to delegate all calls to.
c - the DelegatingConnection that created this statement.
Method Detail

getDelegate

public PreparedStatement getDelegate()
Returns my underlying PreparedStatement.

Returns:
my underlying PreparedStatement.

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

getInnermostDelegate

public PreparedStatement getInnermostDelegate()
If my underlying PreparedStatement is not a DelegatingPreparedStatement, returns it, otherwise recursively invokes this method on my delegate.

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

This method is useful when you may have nested DelegatingPreparedStatements, and you want to make sure to obtain a "genuine" PreparedStatement.


setDelegate

public void setDelegate(PreparedStatement s)
Sets my delegate.


close

public void close()
           throws SQLException
Close this DelegatingPreparedStatement, and close any ResultSets that were not explicitly closed.

Specified by:
close in interface Statement
SQLException

getConnection

public Connection getConnection()
                         throws SQLException
Specified by:
getConnection in interface Statement
SQLException

executeQuery

public ResultSet executeQuery(String sql)
                       throws SQLException
Specified by:
executeQuery in interface Statement
SQLException

getResultSet

public ResultSet getResultSet()
                       throws SQLException
Specified by:
getResultSet in interface Statement
SQLException

executeQuery

public ResultSet executeQuery()
                       throws SQLException
Specified by:
executeQuery in interface PreparedStatement
SQLException

executeUpdate

public int executeUpdate(String sql)
                  throws SQLException
Specified by:
executeUpdate in interface Statement
SQLException

getMaxFieldSize

public int getMaxFieldSize()
                    throws SQLException
Specified by:
getMaxFieldSize in interface Statement
SQLException

setMaxFieldSize

public void setMaxFieldSize(int max)
                     throws SQLException
Specified by:
setMaxFieldSize in interface Statement
SQLException

getMaxRows

public int getMaxRows()
               throws SQLException
Specified by:
getMaxRows in interface Statement
SQLException

setMaxRows

public void setMaxRows(int max)
                throws SQLException
Specified by:
setMaxRows in interface Statement
SQLException

setEscapeProcessing

public void setEscapeProcessing(boolean enable)
                         throws SQLException
Specified by:
setEscapeProcessing in interface Statement
SQLException

getQueryTimeout

public int getQueryTimeout()
                    throws SQLException
Specified by:
getQueryTimeout in interface Statement
SQLException

setQueryTimeout

public void setQueryTimeout(int seconds)
                     throws SQLException
Specified by:
setQueryTimeout in interface Statement
SQLException

cancel

public void cancel()
            throws SQLException
Specified by:
cancel in interface Statement
SQLException

getWarnings

public SQLWarning getWarnings()
                       throws SQLException
Specified by:
getWarnings in interface Statement
SQLException

clearWarnings

public void clearWarnings()
                   throws SQLException
Specified by:
clearWarnings in interface Statement
SQLException

setCursorName

public void setCursorName(String name)
                   throws SQLException
Specified by:
setCursorName in interface Statement
SQLException

execute

public boolean execute(String sql)
                throws SQLException
Specified by:
execute in interface Statement
SQLException

getUpdateCount

public int getUpdateCount()
                   throws SQLException
Specified by:
getUpdateCount in interface Statement
SQLException

getMoreResults

public boolean getMoreResults()
                       throws SQLException
Specified by:
getMoreResults in interface Statement
SQLException

setFetchDirection

public void setFetchDirection(int direction)
                       throws SQLException
Specified by:
setFetchDirection in interface Statement
SQLException

getFetchDirection

public int getFetchDirection()
                      throws SQLException
Specified by:
getFetchDirection in interface Statement
SQLException

setFetchSize

public void setFetchSize(int rows)
                  throws SQLException
Specified by:
setFetchSize in interface Statement
SQLException

getFetchSize

public int getFetchSize()
                 throws SQLException
Specified by:
getFetchSize in interface Statement
SQLException

getResultSetConcurrency

public int getResultSetConcurrency()
                            throws SQLException
Specified by:
getResultSetConcurrency in interface Statement
SQLException

getResultSetType

public int getResultSetType()
                     throws SQLException
Specified by:
getResultSetType in interface Statement
SQLException

addBatch

public void addBatch(String sql)
              throws SQLException
Specified by:
addBatch in interface Statement
SQLException

clearBatch

public void clearBatch()
                throws SQLException
Specified by:
clearBatch in interface Statement
SQLException

executeBatch

public int[] executeBatch()
                   throws SQLException
Specified by:
executeBatch in interface Statement
SQLException

executeUpdate

public int executeUpdate()
                  throws SQLException
Specified by:
executeUpdate in interface PreparedStatement
SQLException

setNull

public void setNull(int parameterIndex,
                    int sqlType)
             throws SQLException
Specified by:
setNull in interface PreparedStatement
SQLException

setBoolean

public void setBoolean(int parameterIndex,
                       boolean x)
                throws SQLException
Specified by:
setBoolean in interface PreparedStatement
SQLException

setByte

public void setByte(int parameterIndex,
                    byte x)
             throws SQLException
Specified by:
setByte in interface PreparedStatement
SQLException

setShort

public void setShort(int parameterIndex,
                     short x)
              throws SQLException
Specified by:
setShort in interface PreparedStatement
SQLException

setInt

public void setInt(int parameterIndex,
                   int x)
            throws SQLException
Specified by:
setInt in interface PreparedStatement
SQLException

setLong

public void setLong(int parameterIndex,
                    long x)
             throws SQLException
Specified by:
setLong in interface PreparedStatement
SQLException

setFloat

public void setFloat(int parameterIndex,
                     float x)
              throws SQLException
Specified by:
setFloat in interface PreparedStatement
SQLException

setDouble

public void setDouble(int parameterIndex,
                      double x)
               throws SQLException
Specified by:
setDouble in interface PreparedStatement
SQLException

setBigDecimal

public void setBigDecimal(int parameterIndex,
                          BigDecimal x)
                   throws SQLException
Specified by:
setBigDecimal in interface PreparedStatement
SQLException

setString

public void setString(int parameterIndex,
                      String x)
               throws SQLException
Specified by:
setString in interface PreparedStatement
SQLException

setBytes

public void setBytes(int parameterIndex,
                     byte[] x)
              throws SQLException
Specified by:
setBytes in interface PreparedStatement
SQLException

setDate

public void setDate(int parameterIndex,
                    Date x)
             throws SQLException
Specified by:
setDate in interface PreparedStatement
SQLException

setTime

public void setTime(int parameterIndex,
                    Time x)
             throws SQLException
Specified by:
setTime in interface PreparedStatement
SQLException

setTimestamp

public void setTimestamp(int parameterIndex,
                         Timestamp x)
                  throws SQLException
Specified by:
setTimestamp in interface PreparedStatement
SQLException

setAsciiStream

public void setAsciiStream(int parameterIndex,
                           InputStream x,
                           int length)
                    throws SQLException
Specified by:
setAsciiStream in interface PreparedStatement
SQLException

setUnicodeStream

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

Specified by:
setUnicodeStream in interface PreparedStatement
SQLException

setBinaryStream

public void setBinaryStream(int parameterIndex,
                            InputStream x,
                            int length)
                     throws SQLException
Specified by:
setBinaryStream in interface PreparedStatement
SQLException

clearParameters

public void clearParameters()
                     throws SQLException
Specified by:
clearParameters in interface PreparedStatement
SQLException

setObject

public void setObject(int parameterIndex,
                      Object x,
                      int targetSqlType,
                      int scale)
               throws SQLException
Specified by:
setObject in interface PreparedStatement
SQLException

setObject

public void setObject(int parameterIndex,
                      Object x,
                      int targetSqlType)
               throws SQLException
Specified by:
setObject in interface PreparedStatement
SQLException

setObject

public void setObject(int parameterIndex,
                      Object x)
               throws SQLException
Specified by:
setObject in interface PreparedStatement
SQLException

execute

public boolean execute()
                throws SQLException
Specified by:
execute in interface PreparedStatement
SQLException

addBatch

public void addBatch()
              throws SQLException
Specified by:
addBatch in interface PreparedStatement
SQLException

setCharacterStream

public void setCharacterStream(int parameterIndex,
                               Reader reader,
                               int length)
                        throws SQLException
Specified by:
setCharacterStream in interface PreparedStatement
SQLException

setRef

public void setRef(int i,
                   Ref x)
            throws SQLException
Specified by:
setRef in interface PreparedStatement
SQLException

setBlob

public void setBlob(int i,
                    Blob x)
             throws SQLException
Specified by:
setBlob in interface PreparedStatement
SQLException

setClob

public void setClob(int i,
                    Clob x)
             throws SQLException
Specified by:
setClob in interface PreparedStatement
SQLException

setArray

public void setArray(int i,
                     Array x)
              throws SQLException
Specified by:
setArray in interface PreparedStatement
SQLException

getMetaData

public ResultSetMetaData getMetaData()
                              throws SQLException
Specified by:
getMetaData in interface PreparedStatement
SQLException

setDate

public void setDate(int parameterIndex,
                    Date x,
                    Calendar cal)
             throws SQLException
Specified by:
setDate in interface PreparedStatement
SQLException

setTime

public void setTime(int parameterIndex,
                    Time x,
                    Calendar cal)
             throws SQLException
Specified by:
setTime in interface PreparedStatement
SQLException

setTimestamp

public void setTimestamp(int parameterIndex,
                         Timestamp x,
                         Calendar cal)
                  throws SQLException
Specified by:
setTimestamp in interface PreparedStatement
SQLException

setNull

public void setNull(int paramIndex,
                    int sqlType,
                    String typeName)
             throws SQLException
Specified by:
setNull in interface PreparedStatement
SQLException

checkOpen

protected void checkOpen()
                  throws SQLException
SQLException

activate

protected void activate()

passivate

protected void passivate()
                  throws SQLException
SQLException

isClosed

protected boolean isClosed()

getMoreResults

public boolean getMoreResults(int current)
                       throws SQLException
Specified by:
getMoreResults in interface Statement
SQLException

getGeneratedKeys

public ResultSet getGeneratedKeys()
                           throws SQLException
Specified by:
getGeneratedKeys in interface Statement
SQLException

executeUpdate

public int executeUpdate(String sql,
                         int autoGeneratedKeys)
                  throws SQLException
Specified by:
executeUpdate in interface Statement
SQLException

executeUpdate

public int executeUpdate(String sql,
                         int[] columnIndexes)
                  throws SQLException
Specified by:
executeUpdate in interface Statement
SQLException

executeUpdate

public int executeUpdate(String sql,
                         String[] columnNames)
                  throws SQLException
Specified by:
executeUpdate in interface Statement
SQLException

execute

public boolean execute(String sql,
                       int autoGeneratedKeys)
                throws SQLException
Specified by:
execute in interface Statement
SQLException

execute

public boolean execute(String sql,
                       int[] columnIndexes)
                throws SQLException
Specified by:
execute in interface Statement
SQLException

execute

public boolean execute(String sql,
                       String[] columnNames)
                throws SQLException
Specified by:
execute in interface Statement
SQLException

getResultSetHoldability

public int getResultSetHoldability()
                            throws SQLException
Specified by:
getResultSetHoldability in interface Statement
SQLException

setURL

public void setURL(int parameterIndex,
                   URL x)
            throws SQLException
Specified by:
setURL in interface PreparedStatement
SQLException

getParameterMetaData

public ParameterMetaData getParameterMetaData()
                                       throws SQLException
Specified by:
getParameterMetaData in interface PreparedStatement
SQLException


Copyright © 2001-2003 Apache Software Foundation. All Rights Reserved.