Package org.apache.tomcat.dbcp.dbcp2
Class DelegatingStatement
- java.lang.Object
- 
- org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
- 
- org.apache.tomcat.dbcp.dbcp2.DelegatingStatement
 
 
- 
- All Implemented Interfaces:
- java.lang.AutoCloseable,- java.sql.Statement,- java.sql.Wrapper,- TrackedUse
 - Direct Known Subclasses:
- DelegatingPreparedStatement
 
 public class DelegatingStatement extends AbandonedTrace implements java.sql.Statement A base delegating implementation ofStatement.All of the methods from the Statementinterface simply check to see that theStatementis 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. - Since:
- 2.0
 
- 
- 
Constructor SummaryConstructors Constructor Description DelegatingStatement(DelegatingConnection<?> connection, java.sql.Statement statement)Create a wrapper for the Statement which traces this Statement to the Connection which created it and the code which created it.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate()voidaddBatch(java.lang.String sql)voidcancel()protected voidcheckOpen()voidclearBatch()voidclearWarnings()voidclose()Close this DelegatingStatement, and close any ResultSets that were not explicitly closed.voidcloseOnCompletion()booleanexecute(java.lang.String sql)booleanexecute(java.lang.String sql, int autoGeneratedKeys)booleanexecute(java.lang.String sql, int[] columnIndexes)booleanexecute(java.lang.String sql, java.lang.String[] columnNames)int[]executeBatch()long[]executeLargeBatch()longexecuteLargeUpdate(java.lang.String sql)longexecuteLargeUpdate(java.lang.String sql, int autoGeneratedKeys)longexecuteLargeUpdate(java.lang.String sql, int[] columnIndexes)longexecuteLargeUpdate(java.lang.String sql, java.lang.String[] columnNames)java.sql.ResultSetexecuteQuery(java.lang.String sql)intexecuteUpdate(java.lang.String sql)intexecuteUpdate(java.lang.String sql, int autoGeneratedKeys)intexecuteUpdate(java.lang.String sql, int[] columnIndexes)intexecuteUpdate(java.lang.String sql, java.lang.String[] columnNames)protected voidfinalize()java.sql.ConnectiongetConnection()protected DelegatingConnection<?>getConnectionInternal()java.sql.StatementgetDelegate()Returns my underlyingStatement.intgetFetchDirection()intgetFetchSize()java.sql.ResultSetgetGeneratedKeys()java.sql.StatementgetInnermostDelegate()If my underlyingStatementis not aDelegatingStatement, returns it, otherwise recursively invokes this method on my delegate.longgetLargeMaxRows()longgetLargeUpdateCount()intgetMaxFieldSize()intgetMaxRows()booleangetMoreResults()booleangetMoreResults(int current)intgetQueryTimeout()java.sql.ResultSetgetResultSet()intgetResultSetConcurrency()intgetResultSetHoldability()intgetResultSetType()intgetUpdateCount()java.sql.SQLWarninggetWarnings()protected voidhandleException(java.sql.SQLException e)booleanisClosed()protected booleanisClosedInternal()booleanisCloseOnCompletion()booleanisPoolable()booleanisWrapperFor(java.lang.Class<?> iface)voidpassivate()protected voidsetClosedInternal(boolean closed)voidsetCursorName(java.lang.String name)voidsetDelegate(java.sql.Statement statement)Sets my delegate.voidsetEscapeProcessing(boolean enable)voidsetFetchDirection(int direction)voidsetFetchSize(int rows)voidsetLargeMaxRows(long max)voidsetMaxFieldSize(int max)voidsetMaxRows(int max)voidsetPoolable(boolean poolable)voidsetQueryTimeout(int seconds)java.lang.StringtoString()Returns a String representation of this object.<T> Tunwrap(java.lang.Class<T> iface)- 
Methods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTraceaddTrace, clearTrace, close, getLastUsed, getLastUsedInstant, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed, setLastUsed
 
- 
 
- 
- 
- 
Constructor Detail- 
DelegatingStatementpublic DelegatingStatement(DelegatingConnection<?> connection, java.sql.Statement statement) Create a wrapper for the Statement which traces this Statement to the Connection which created it and the code which created it.- Parameters:
- statement- the- Statementto delegate all calls to.
- connection- the- DelegatingConnectionthat created this statement.
 
 
- 
 - 
Method Detail- 
activatepublic void activate() throws java.sql.SQLException- Throws:
- java.sql.SQLException- thrown by the delegating statement.
- Since:
- 2.4.0 made public, was protected in 2.3.0.
 
 - 
addBatchpublic void addBatch(java.lang.String sql) throws java.sql.SQLException- Specified by:
- addBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
cancelpublic void cancel() throws java.sql.SQLException- Specified by:
- cancelin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
checkOpenprotected void checkOpen() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
clearBatchpublic void clearBatch() throws java.sql.SQLException- Specified by:
- clearBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
clearWarningspublic void clearWarnings() throws java.sql.SQLException- Specified by:
- clearWarningsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
closepublic void close() throws java.sql.SQLExceptionClose this DelegatingStatement, and close any ResultSets that were not explicitly closed.- Specified by:
- closein interface- java.lang.AutoCloseable
- Specified by:
- closein interface- java.sql.Statement
- Overrides:
- closein class- AbandonedTrace
- Throws:
- java.sql.SQLException- Ignored here, for subclasses.
 
 - 
closeOnCompletionpublic void closeOnCompletion() throws java.sql.SQLException- Specified by:
- closeOnCompletionin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executepublic boolean execute(java.lang.String sql) throws java.sql.SQLException- Specified by:
- executein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executepublic boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
- executein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executepublic boolean execute(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
- executein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executepublic boolean execute(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
- executein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeBatchpublic int[] executeBatch() throws java.sql.SQLException- Specified by:
- executeBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeLargeBatchpublic long[] executeLargeBatch() throws java.sql.SQLException- Specified by:
- executeLargeBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
executeLargeUpdatepublic long executeLargeUpdate(java.lang.String sql) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
executeLargeUpdatepublic long executeLargeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
executeLargeUpdatepublic long executeLargeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
executeLargeUpdatepublic long executeLargeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
executeQuerypublic java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException- Specified by:
- executeQueryin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeUpdatepublic int executeUpdate(java.lang.String sql) throws java.sql.SQLException- Specified by:
- executeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeUpdatepublic int executeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
- executeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeUpdatepublic int executeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
- executeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeUpdatepublic int executeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
- executeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
finalizeprotected void finalize() throws java.lang.Throwable- Overrides:
- finalizein class- java.lang.Object
- Throws:
- java.lang.Throwable
 
 - 
getConnectionpublic java.sql.Connection getConnection() throws java.sql.SQLException- Specified by:
- getConnectionin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getConnectionInternalprotected DelegatingConnection<?> getConnectionInternal() 
 - 
getDelegatepublic java.sql.Statement getDelegate() Returns my underlyingStatement.- Returns:
- my underlying Statement.
- See Also:
- getInnermostDelegate()
 
 - 
getFetchDirectionpublic int getFetchDirection() throws java.sql.SQLException- Specified by:
- getFetchDirectionin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getFetchSizepublic int getFetchSize() throws java.sql.SQLException- Specified by:
- getFetchSizein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getGeneratedKeyspublic java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException- Specified by:
- getGeneratedKeysin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getInnermostDelegatepublic java.sql.Statement getInnermostDelegate() If my underlyingStatementis not aDelegatingStatement, returns it, otherwise recursively invokes this method on my delegate.Hence this method will return the first delegate that is not a DelegatingStatementornullwhen no non-DelegatingStatementdelegate can be found by traversing this chain.This method is useful when you may have nested DelegatingStatements, and you want to make sure to obtain a "genuine"Statement.- Returns:
- The innermost delegate.
- See Also:
- getDelegate()
 
 - 
getLargeMaxRowspublic long getLargeMaxRows() throws java.sql.SQLException- Specified by:
- getLargeMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
getLargeUpdateCountpublic long getLargeUpdateCount() throws java.sql.SQLException- Specified by:
- getLargeUpdateCountin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
getMaxFieldSizepublic int getMaxFieldSize() throws java.sql.SQLException- Specified by:
- getMaxFieldSizein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getMaxRowspublic int getMaxRows() throws java.sql.SQLException- Specified by:
- getMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getMoreResultspublic boolean getMoreResults() throws java.sql.SQLException- Specified by:
- getMoreResultsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getMoreResultspublic boolean getMoreResults(int current) throws java.sql.SQLException- Specified by:
- getMoreResultsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getQueryTimeoutpublic int getQueryTimeout() throws java.sql.SQLException- Specified by:
- getQueryTimeoutin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getResultSetpublic java.sql.ResultSet getResultSet() throws java.sql.SQLException- Specified by:
- getResultSetin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getResultSetConcurrencypublic int getResultSetConcurrency() throws java.sql.SQLException- Specified by:
- getResultSetConcurrencyin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getResultSetHoldabilitypublic int getResultSetHoldability() throws java.sql.SQLException- Specified by:
- getResultSetHoldabilityin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getResultSetTypepublic int getResultSetType() throws java.sql.SQLException- Specified by:
- getResultSetTypein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getUpdateCountpublic int getUpdateCount() throws java.sql.SQLException- Specified by:
- getUpdateCountin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getWarningspublic java.sql.SQLWarning getWarnings() throws java.sql.SQLException- Specified by:
- getWarningsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
handleExceptionprotected void handleException(java.sql.SQLException e) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
isClosedpublic boolean isClosed() throws java.sql.SQLException- Specified by:
- isClosedin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
isClosedInternalprotected boolean isClosedInternal() 
 - 
isCloseOnCompletionpublic boolean isCloseOnCompletion() throws java.sql.SQLException- Specified by:
- isCloseOnCompletionin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
isPoolablepublic boolean isPoolable() throws java.sql.SQLException- Specified by:
- isPoolablein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
isWrapperForpublic boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException- Specified by:
- isWrapperForin interface- java.sql.Wrapper
- Throws:
- java.sql.SQLException
 
 - 
passivatepublic void passivate() throws java.sql.SQLException- Throws:
- java.sql.SQLException- thrown by the delegating statement.
- Since:
- 2.4.0 made public, was protected in 2.3.0.
 
 - 
setClosedInternalprotected void setClosedInternal(boolean closed) 
 - 
setCursorNamepublic void setCursorName(java.lang.String name) throws java.sql.SQLException- Specified by:
- setCursorNamein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setDelegatepublic void setDelegate(java.sql.Statement statement) Sets my delegate.- Parameters:
- statement- my delegate.
 
 - 
setEscapeProcessingpublic void setEscapeProcessing(boolean enable) throws java.sql.SQLException- Specified by:
- setEscapeProcessingin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setFetchDirectionpublic void setFetchDirection(int direction) throws java.sql.SQLException- Specified by:
- setFetchDirectionin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setFetchSizepublic void setFetchSize(int rows) throws java.sql.SQLException- Specified by:
- setFetchSizein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setLargeMaxRowspublic void setLargeMaxRows(long max) throws java.sql.SQLException- Specified by:
- setLargeMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- Since:
- 2.5.0
 
 - 
setMaxFieldSizepublic void setMaxFieldSize(int max) throws java.sql.SQLException- Specified by:
- setMaxFieldSizein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setMaxRowspublic void setMaxRows(int max) throws java.sql.SQLException- Specified by:
- setMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setPoolablepublic void setPoolable(boolean poolable) throws java.sql.SQLException- Specified by:
- setPoolablein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setQueryTimeoutpublic void setQueryTimeout(int seconds) throws java.sql.SQLException- Specified by:
- setQueryTimeoutin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
toStringpublic java.lang.String toString() Returns a String representation of this object.- Overrides:
- toStringin class- java.lang.Object
- Returns:
- String
 
 - 
unwrappublic <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException- Specified by:
- unwrapin interface- java.sql.Wrapper
- Throws:
- java.sql.SQLException
 
 
- 
 
-