public class PreparedStatementSpy extends StatementSpy implements PreparedStatement
MODIFICATIONS FOR LOG4J2:
This class now overrides Statement.getGeneratedKeys()
in order to use the convenient method Statement.getGeneratedKeys(String)
,
by providing the String returned by dumpedSql()
.
Modifier and Type | Field and Description |
---|---|
protected List<String> |
argTrace
holds list of bind variables for tracing
|
protected RdbmsSpecifics |
rdbmsSpecifics
RdbmsSpecifics for formatting SQL for the given RDBMS.
|
protected PreparedStatement |
realPreparedStatement
The real PreparedStatement that this PreparedStatementSpy wraps.
|
connectionSpy, currentBatch, log, realStatement, sql
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
Constructor and Description |
---|
PreparedStatementSpy(String sql,
ConnectionSpy connectionSpy,
PreparedStatement realPreparedStatement)
Create a PreparedStatementSpy (JDBC 4 version) for logging activity of another PreparedStatement.
|
Modifier and Type | Method and Description |
---|---|
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.
|
ResultSet |
getGeneratedKeys() |
ResultSetMetaData |
getMetaData() |
ParameterMetaData |
getParameterMetaData() |
PreparedStatement |
getRealPreparedStatement()
Get the real PreparedStatement that this PreparedStatementSpy wraps.
|
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) |
addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getConnectionNumber, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getRealStatement, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
protected PreparedStatement realPreparedStatement
protected RdbmsSpecifics rdbmsSpecifics
public PreparedStatementSpy(String sql, ConnectionSpy connectionSpy, PreparedStatement realPreparedStatement)
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.protected void argTraceSet(int i, String typeHelper, Object arg)
i
- index of argument being set.typeHelper
- optional additional info about the type that is being set in the argarg
- argument being bound.protected String dumpedSql()
protected void reportAllReturns(String methodCall, String msg)
StatementSpy
reportAllReturns
in class StatementSpy
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.public PreparedStatement getRealPreparedStatement()
public String getClassType()
Spy
getClassType
in interface Spy
getClassType
in class StatementSpy
public void setTime(int parameterIndex, Time x) throws SQLException
setTime
in interface PreparedStatement
SQLException
public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException
setTime
in interface PreparedStatement
SQLException
public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException
setCharacterStream
in interface PreparedStatement
SQLException
public void setNull(int parameterIndex, int sqlType) throws SQLException
setNull
in interface PreparedStatement
SQLException
public void setNull(int paramIndex, int sqlType, String typeName) throws SQLException
setNull
in interface PreparedStatement
SQLException
public void setRef(int i, Ref x) throws SQLException
setRef
in interface PreparedStatement
SQLException
public void setBoolean(int parameterIndex, boolean x) throws SQLException
setBoolean
in interface PreparedStatement
SQLException
public void setBlob(int i, Blob x) throws SQLException
setBlob
in interface PreparedStatement
SQLException
public void setClob(int i, Clob x) throws SQLException
setClob
in interface PreparedStatement
SQLException
public void setArray(int i, Array x) throws SQLException
setArray
in interface PreparedStatement
SQLException
public void setByte(int parameterIndex, byte x) throws SQLException
setByte
in interface PreparedStatement
SQLException
public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
setUnicodeStream
in interface PreparedStatement
SQLException
public void setShort(int parameterIndex, short x) throws SQLException
setShort
in interface PreparedStatement
SQLException
public boolean execute() throws SQLException
execute
in interface PreparedStatement
SQLException
public void setInt(int parameterIndex, int x) throws SQLException
setInt
in interface PreparedStatement
SQLException
public void setLong(int parameterIndex, long x) throws SQLException
setLong
in interface PreparedStatement
SQLException
public void setFloat(int parameterIndex, float x) throws SQLException
setFloat
in interface PreparedStatement
SQLException
public void setDouble(int parameterIndex, double x) throws SQLException
setDouble
in interface PreparedStatement
SQLException
public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
setBigDecimal
in interface PreparedStatement
SQLException
public void setURL(int parameterIndex, URL x) throws SQLException
setURL
in interface PreparedStatement
SQLException
public void setString(int parameterIndex, String x) throws SQLException
setString
in interface PreparedStatement
SQLException
public void setBytes(int parameterIndex, byte[] x) throws SQLException
setBytes
in interface PreparedStatement
SQLException
public void setDate(int parameterIndex, Date x) throws SQLException
setDate
in interface PreparedStatement
SQLException
public ParameterMetaData getParameterMetaData() throws SQLException
getParameterMetaData
in interface PreparedStatement
SQLException
public void setRowId(int parameterIndex, RowId x) throws SQLException
setRowId
in interface PreparedStatement
SQLException
public void setNString(int parameterIndex, String value) throws SQLException
setNString
in interface PreparedStatement
SQLException
public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
setNCharacterStream
in interface PreparedStatement
SQLException
public void setNClob(int parameterIndex, NClob value) throws SQLException
setNClob
in interface PreparedStatement
SQLException
public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
setClob
in interface PreparedStatement
SQLException
public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
setBlob
in interface PreparedStatement
SQLException
public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
setNClob
in interface PreparedStatement
SQLException
public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
setSQLXML
in interface PreparedStatement
SQLException
public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException
setDate
in interface PreparedStatement
SQLException
public ResultSet executeQuery() throws SQLException
executeQuery
in interface PreparedStatement
SQLException
public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException
setObject
in interface PreparedStatement
SQLException
public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
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.
setAsciiStream
in interface PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the Java input stream that contains the ASCII parameter valuelength
- the number of bytes in the streamSQLException
- 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
public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
setBinaryStream
in interface PreparedStatement
SQLException
public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
setCharacterStream
in interface PreparedStatement
SQLException
public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
setAsciiStream
in interface PreparedStatement
SQLException
public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
setBinaryStream
in interface PreparedStatement
SQLException
public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
setCharacterStream
in interface PreparedStatement
SQLException
public void setNCharacterStream(int parameterIndex, Reader reader) throws SQLException
setNCharacterStream
in interface PreparedStatement
SQLException
public void setClob(int parameterIndex, Reader reader) throws SQLException
setClob
in interface PreparedStatement
SQLException
public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
setBlob
in interface PreparedStatement
SQLException
public void setNClob(int parameterIndex, Reader reader) throws SQLException
setNClob
in interface PreparedStatement
SQLException
public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
setObject
in interface PreparedStatement
SQLException
public void setObject(int parameterIndex, Object x) throws SQLException
setObject
in interface PreparedStatement
SQLException
public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
setTimestamp
in interface PreparedStatement
SQLException
public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException
setTimestamp
in interface PreparedStatement
SQLException
public int executeUpdate() throws SQLException
executeUpdate
in interface PreparedStatement
SQLException
public ResultSet getGeneratedKeys() throws SQLException
getGeneratedKeys
in interface Statement
getGeneratedKeys
in class StatementSpy
SQLException
public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException
setAsciiStream
in interface PreparedStatement
SQLException
public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException
setBinaryStream
in interface PreparedStatement
SQLException
public void clearParameters() throws SQLException
clearParameters
in interface PreparedStatement
SQLException
public ResultSetMetaData getMetaData() throws SQLException
getMetaData
in interface PreparedStatement
SQLException
public void addBatch() throws SQLException
addBatch
in interface PreparedStatement
SQLException
public <T> T unwrap(Class<T> iface) throws SQLException
unwrap
in interface Wrapper
unwrap
in class StatementSpy
SQLException
public boolean isWrapperFor(Class<?> iface) throws SQLException
isWrapperFor
in interface Wrapper
isWrapperFor
in class StatementSpy
SQLException
Copyright © 2013 Bgee - Swiss Institute of Bioinformatics. All Rights Reserved.