public class DelegatingStatement extends AbandonedTrace implements Statement
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.
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
Constructor and Description |
---|
DelegatingStatement(DelegatingConnection<?> connection,
Statement statement)
Create a wrapper for the Statement which traces this Statement to the Connection which created it and the code
which created it.
|
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 |
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) |
protected void |
finalize() |
Connection |
getConnection() |
protected DelegatingConnection<?> |
getConnectionInternal() |
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) |
boolean |
isClosed() |
protected boolean |
isClosedInternal() |
boolean |
isCloseOnCompletion() |
boolean |
isPoolable() |
boolean |
isWrapperFor(Class<?> iface) |
void |
passivate() |
protected void |
setClosedInternal(boolean closed) |
void |
setCursorName(String name) |
void |
setDelegate(Statement statement)
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) |
addTrace, clearTrace, getLastUsed, getTrace, removeTrace, setLastUsed, setLastUsed
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getLargeMaxRows, getLargeUpdateCount, setLargeMaxRows
public DelegatingStatement(DelegatingConnection<?> connection, Statement statement)
statement
- the Statement
to delegate all calls to.connection
- the DelegatingConnection
that created this statement.public Statement getDelegate()
Statement
.Statement
.getInnermostDelegate()
public Statement getInnermostDelegate()
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 traversing this chain.
This method is useful when you may have nested DelegatingStatement
s, and you want to make sure to obtain
a "genuine" Statement
.
getDelegate()
public void setDelegate(Statement statement)
statement
- my delegate.protected boolean isClosedInternal()
protected void setClosedInternal(boolean closed)
protected void checkOpen() throws SQLException
SQLException
public void close() throws SQLException
close
in interface AutoCloseable
close
in interface Statement
SQLException
protected void handleException(SQLException e) throws SQLException
SQLException
public void activate() throws SQLException
SQLException
- thrown by the delegating statement.public void passivate() throws SQLException
SQLException
- thrown by the delegating statement.public Connection getConnection() throws SQLException
getConnection
in interface Statement
SQLException
protected DelegatingConnection<?> getConnectionInternal()
public ResultSet executeQuery(String sql) throws SQLException
executeQuery
in interface Statement
SQLException
public ResultSet getResultSet() throws SQLException
getResultSet
in interface Statement
SQLException
public int executeUpdate(String sql) throws SQLException
executeUpdate
in interface Statement
SQLException
public int getMaxFieldSize() throws SQLException
getMaxFieldSize
in interface Statement
SQLException
public void setMaxFieldSize(int max) throws SQLException
setMaxFieldSize
in interface Statement
SQLException
public int getMaxRows() throws SQLException
getMaxRows
in interface Statement
SQLException
public void setMaxRows(int max) throws SQLException
setMaxRows
in interface Statement
SQLException
public void setEscapeProcessing(boolean enable) throws SQLException
setEscapeProcessing
in interface Statement
SQLException
public int getQueryTimeout() throws SQLException
getQueryTimeout
in interface Statement
SQLException
public void setQueryTimeout(int seconds) throws SQLException
setQueryTimeout
in interface Statement
SQLException
public void cancel() throws SQLException
cancel
in interface Statement
SQLException
public SQLWarning getWarnings() throws SQLException
getWarnings
in interface Statement
SQLException
public void clearWarnings() throws SQLException
clearWarnings
in interface Statement
SQLException
public void setCursorName(String name) throws SQLException
setCursorName
in interface Statement
SQLException
public boolean execute(String sql) throws SQLException
execute
in interface Statement
SQLException
public int getUpdateCount() throws SQLException
getUpdateCount
in interface Statement
SQLException
public boolean getMoreResults() throws SQLException
getMoreResults
in interface Statement
SQLException
public void setFetchDirection(int direction) throws SQLException
setFetchDirection
in interface Statement
SQLException
public int getFetchDirection() throws SQLException
getFetchDirection
in interface Statement
SQLException
public void setFetchSize(int rows) throws SQLException
setFetchSize
in interface Statement
SQLException
public int getFetchSize() throws SQLException
getFetchSize
in interface Statement
SQLException
public int getResultSetConcurrency() throws SQLException
getResultSetConcurrency
in interface Statement
SQLException
public int getResultSetType() throws SQLException
getResultSetType
in interface Statement
SQLException
public void addBatch(String sql) throws SQLException
addBatch
in interface Statement
SQLException
public void clearBatch() throws SQLException
clearBatch
in interface Statement
SQLException
public int[] executeBatch() throws SQLException
executeBatch
in interface Statement
SQLException
public boolean getMoreResults(int current) throws SQLException
getMoreResults
in interface Statement
SQLException
public ResultSet getGeneratedKeys() throws SQLException
getGeneratedKeys
in interface Statement
SQLException
public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
executeUpdate
in interface Statement
SQLException
public int executeUpdate(String sql, int[] columnIndexes) throws SQLException
executeUpdate
in interface Statement
SQLException
public int executeUpdate(String sql, String[] columnNames) throws SQLException
executeUpdate
in interface Statement
SQLException
public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
execute
in interface Statement
SQLException
public boolean execute(String sql, int[] columnIndexes) throws SQLException
execute
in interface Statement
SQLException
public boolean execute(String sql, String[] columnNames) throws SQLException
execute
in interface Statement
SQLException
public int getResultSetHoldability() throws SQLException
getResultSetHoldability
in interface Statement
SQLException
public boolean isClosed() throws SQLException
isClosed
in interface Statement
SQLException
public boolean isWrapperFor(Class<?> iface) throws SQLException
isWrapperFor
in interface Wrapper
SQLException
public <T> T unwrap(Class<T> iface) throws SQLException
unwrap
in interface Wrapper
SQLException
public void setPoolable(boolean poolable) throws SQLException
setPoolable
in interface Statement
SQLException
public boolean isPoolable() throws SQLException
isPoolable
in interface Statement
SQLException
public void closeOnCompletion() throws SQLException
closeOnCompletion
in interface Statement
SQLException
public boolean isCloseOnCompletion() throws SQLException
isCloseOnCompletion
in interface Statement
SQLException
Copyright © 2001–2018 The Apache Software Foundation. All rights reserved.