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