log4jdbc4 1.1

net.sf.log4jdbc
Class PreparedStatementSpy

java.lang.Object
  extended by net.sf.log4jdbc.StatementSpy
      extended by net.sf.log4jdbc.PreparedStatementSpy
All Implemented Interfaces:
PreparedStatement, Statement, Wrapper, Spy
Direct Known Subclasses:
CallableStatementSpy

public class PreparedStatementSpy
extends StatementSpy
implements PreparedStatement

Wraps a PreparedStatement and reports method calls, returns and exceptions.

Author:
Arthur Blake
 

Field Summary
protected  List argTrace
          holds list of bind variables for tracing
protected  net.sf.log4jdbc.RdbmsSpecifics rdbmsSpecifics
          RdbmsSpecifics for formatting SQL for the given RDBMS.
protected  PreparedStatement realPreparedStatement
          The real PreparedStatement that this PreparedStatementSpy wraps.
 
Fields inherited from class net.sf.log4jdbc.StatementSpy
connectionSpy, currentBatch, realStatement
 
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
PreparedStatementSpy(String sql, ConnectionSpy connectionSpy, PreparedStatement realPreparedStatement)
          Create a PreparedStatementSpy (JDBC 4.0 version) for logging activity of another PreparedStatement.
 
Method Summary
 void addBatch()
           
protected  void argTraceSet(int i, String typeHelper, Object arg)
          Store an argument (bind variable) into the argTrace list (above) for later dumping.
 void clearParameters()
           
protected  String dumpedSql()
           
 boolean execute()
           
 ResultSet executeQuery()
           
 int executeUpdate()
           
 String getClassType()
          Get the type of class being spied upon.
 ResultSetMetaData getMetaData()
           
 ParameterMetaData getParameterMetaData()
           
 boolean isWrapperFor(Class<?> iface)
           
protected  void reportAllReturns(String methodCall, String msg)
          Report (for logging) that a method returned.
 void setArray(int i, Array x)
           
 void setAsciiStream(int parameterIndex, InputStream x)
           
 void setAsciiStream(int parameterIndex, InputStream x, int length)
           
 void setAsciiStream(int parameterIndex, InputStream x, long length)
          Sets the designated parameter to the given input stream, which will have the specified number of bytes.
 void setBigDecimal(int parameterIndex, BigDecimal x)
           
 void setBinaryStream(int parameterIndex, InputStream x)
           
 void setBinaryStream(int parameterIndex, InputStream x, int length)
           
 void setBinaryStream(int parameterIndex, InputStream x, 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 setRef(int i, Ref x)
           
 void setRowId(int parameterIndex, RowId x)
           
 void setShort(int parameterIndex, short x)
           
 void setSQLXML(int parameterIndex, SQLXML xmlObject)
           
 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)
           
<T> T
unwrap(Class<T> iface)
           
 
Methods inherited from class net.sf.log4jdbc.StatementSpy
addBatch, cancel, clearBatch, clearWarnings, close, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getConnectionNumber, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, reportException, reportException, reportException, reportReturn, reportReturn, reportReturn, reportReturn, reportReturn, reportReturn, reportReturn, reportReturn, reportReturn, reportSql, reportSqlTiming, reportStatementSql, reportStatementSqlTiming, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.Statement
addBatch, cancel, clearBatch, clearWarnings, close, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
 

Field Detail

argTrace

protected final List argTrace
holds list of bind variables for tracing


realPreparedStatement

protected PreparedStatement realPreparedStatement
The real PreparedStatement that this PreparedStatementSpy wraps.


rdbmsSpecifics

protected net.sf.log4jdbc.RdbmsSpecifics rdbmsSpecifics
RdbmsSpecifics for formatting SQL for the given RDBMS.

Constructor Detail

PreparedStatementSpy

public PreparedStatementSpy(String sql,
                            ConnectionSpy connectionSpy,
                            PreparedStatement realPreparedStatement)
Create a PreparedStatementSpy (JDBC 4.0 version) for logging activity of another PreparedStatement.

Parameters:
sql - SQL for the prepared statement that is being spied upon.
connectionSpy - ConnectionSpy that was called to produce this PreparedStatement.
realPreparedStatement - The actual PreparedStatement that is being spied upon.
Method Detail

argTraceSet

protected void argTraceSet(int i,
                           String typeHelper,
                           Object arg)
Store an argument (bind variable) into the argTrace list (above) for later dumping.

Parameters:
i - index of argument being set.
typeHelper - optional additional info about the type that is being set in the arg
arg - argument being bound.

dumpedSql

protected String dumpedSql()

reportAllReturns

protected void reportAllReturns(String methodCall,
                                String msg)
Description copied from class: StatementSpy
Report (for logging) that a method returned. All the other reportReturn methods are conveniance methods that call this method.

Overrides:
reportAllReturns in class StatementSpy
Parameters:
methodCall - description of method call and arguments passed to it that returned.
msg - description of what the return value that was returned. may be an empty String for void return types.

getClassType

public String getClassType()
Description copied from interface: Spy
Get the type of class being spied upon. For example, "Statement", "ResultSet", etc.

Specified by:
getClassType in interface Spy
Overrides:
getClassType in class StatementSpy
Returns:
a description of the type of class being spied upon.

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

setCharacterStream

public void setCharacterStream(int parameterIndex,
                               Reader reader,
                               int length)
                        throws SQLException
Specified by:
setCharacterStream 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

setRef

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

setBoolean

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

setBlob

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

setClob

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

setArray

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

setByte

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

setUnicodeStream

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

Specified by:
setUnicodeStream in interface PreparedStatement
Throws:
SQLException

setShort

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

execute

public boolean execute()
                throws SQLException
Specified by:
execute 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

setFloat

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

setDouble

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

setBigDecimal

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

setURL

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

setString

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

setBytes

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

setDate

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

getParameterMetaData

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

setRowId

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

setNString

public void setNString(int parameterIndex,
                       String value)
                throws SQLException
Specified by:
setNString 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

setClob

public void setClob(int parameterIndex,
                    Reader reader,
                    long length)
             throws SQLException
Specified by:
setClob 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

setNClob

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

setSQLXML

public void setSQLXML(int parameterIndex,
                      SQLXML xmlObject)
               throws SQLException
Specified by:
setSQLXML 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

executeQuery

public ResultSet executeQuery()
                       throws SQLException
Specified by:
executeQuery 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

setAsciiStream

public void setAsciiStream(int parameterIndex,
                           InputStream x,
                           long length)
                    throws SQLException
Sets the designated parameter to the given input stream, which will have the specified number of bytes. When a very large ASCII value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.InputStream. Data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from ASCII to the database char format.

Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

Specified by:
setAsciiStream in interface PreparedStatement
Since:
1.6
Throws:
SQLException - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the Java input stream that contains the ASCII parameter value
length - the number of bytes in the stream

setBinaryStream

public void setBinaryStream(int parameterIndex,
                            InputStream x,
                            long length)
                     throws SQLException
Specified by:
setBinaryStream 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

setAsciiStream

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

setBinaryStream

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

setCharacterStream

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

setNCharacterStream

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

setClob

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

setBlob

public void setBlob(int parameterIndex,
                    InputStream inputStream)
             throws SQLException
Specified by:
setBlob in interface PreparedStatement
Throws:
SQLException

setNClob

public void setNClob(int parameterIndex,
                     Reader reader)
              throws SQLException
Specified by:
setNClob 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)
               throws SQLException
Specified by:
setObject 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

executeUpdate

public int executeUpdate()
                  throws SQLException
Specified by:
executeUpdate 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

setBinaryStream

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

clearParameters

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

getMetaData

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

addBatch

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

unwrap

public <T> T unwrap(Class<T> iface)
         throws SQLException
Specified by:
unwrap in interface Wrapper
Overrides:
unwrap in class StatementSpy
Throws:
SQLException

isWrapperFor

public boolean isWrapperFor(Class<?> iface)
                     throws SQLException
Specified by:
isWrapperFor in interface Wrapper
Overrides:
isWrapperFor in class StatementSpy
Throws:
SQLException

log4jdbc4 1.1