Package net.sourceforge.jtds.jdbc
Class JtdsStatement
- java.lang.Object
-
- net.sourceforge.jtds.jdbc.JtdsStatement
-
- All Implemented Interfaces:
java.lang.AutoCloseable,java.sql.Statement,java.sql.Wrapper
- Direct Known Subclasses:
JtdsPreparedStatement
public class JtdsStatement extends java.lang.Object implements java.sql.StatementjTDS implementation of the java.sql.Statement interface.NB. As allowed by the JDBC standard and like most other drivers, this implementation only allows one open result set at a time.
Implementation notes:
I experimented with allowing multiple open result sets as supported by the original jTDS but rejected this approach for the following reasons:
- It is more difficult to ensure that there are no memory leaks and that cursors are closed if multiple open sets are allowed.
- The use of one result set allows cursor and non cursor result sets to be derived from exeuteQuery() or execute() and getResultSet() in the same way that other drivers do.
- Author:
- Mike Hutchinson, Holger Rehn
- See Also:
Statement,Connection.createStatement(),ResultSet
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicInteger_Closed0 - this statement is open 1 - this statement is currently being closed 2 - this statement is closedprotected java.util.ArrayListbatchValuesBatched SQL Statement array.(package private) static intBOOLEAN(package private) static intCLOSE_ALL_RESULTS(package private) static intCLOSE_CURRENT_RESULTprotected ColInfo[]colMetaDataThe cached column meta data.protected JtdsConnectionconnectionThe connection owning this statement object.protected JtdsResultSetcurrentResultThe currentResultSet.protected java.lang.StringcursorNameThe cursor name to be used for positioned updates.(package private) static intDATALINK(package private) static intDEFAULT_FETCH_SIZEprotected booleanescapeProcessingTrue if SQL statements should be preprocessed.(package private) static java.lang.IntegerEXECUTE_FAILEDprotected intfetchDirectionThe fetch direction for result sets.protected intfetchSizeThe fetch size (default 100, only used by cursorResultSets).(package private) static java.lang.StringGENKEYCOLColumn name to be used for retrieving generated keys from the server: "_JTDS_GENE_RATED_KEYS_"protected CachedResultSetgenKeyResultSetDummy result set for getGeneratedKeys.(package private) static intKEEP_CURRENT_RESULTprotected intmaxFieldSizeThe maximum field size (not used at present).protected intmaxRowsThe maximum number of rows to return (not used at present).protected SQLDiagnosticmessagesSQL Diagnostic exceptions and warnings.(package private) static intNO_GENERATED_KEYSprotected java.util.ArrayListopenResultSetsList of open result sets.protected intqueryTimeoutThe read query timeout in secondsprotected java.util.LinkedListresultQueueList of queued results (update counts, possibly followed by aResultSet).protected intresultSetConcurrencyThe concurrency of result sets created by this statement.protected intresultSetTypeThe type of result sets created by this statement.(package private) static intRETURN_GENERATED_KEYS(package private) static java.lang.IntegerSUCCESS_NO_INFOprotected TdsCoretdsThe TDS object used for server access.private intupdateCountThe current update count.
-
Constructor Summary
Constructors Constructor Description JtdsStatement(JtdsConnection connection, int resultSetType, int resultSetConcurrency)Construct a new Statement object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBatch(java.lang.String sql)(package private) voidaddWarning(java.sql.SQLWarning w)Add an SQLWarning object to the statement warnings list.protected voidcacheResults()Cache as many results as possible (up to the firstResultSet).voidcancel()protected voidcheckCursorException(java.sql.SQLException e)Check that the exception is caused by the failure to open a cursor and not by a more serious SQL error.protected voidcheckOpen()Check that this statement is still open.voidclearBatch()voidclearWarnings()voidclose()(package private) voidcloseAllResultSets()Close all result sets.(package private) voidcloseCurrentResultSet()Close current result set (if any).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()Execute batch of SQL Statements.private booleanexecuteImpl(java.lang.String sql, int autoGeneratedKeys, boolean update)Implements the common functionality for plain statementexecute(java.lang.String)and {#link #executeUpdate}: basic checks, cleaning up of previous results, setting up and executing the query and loading the first results.protected java.sql.SQLExceptionexecuteMSBatch(int size, int executeSize, java.util.ArrayList counts)Execute the SQL batch on a MS server.java.sql.ResultSetexecuteQuery(java.lang.String sql)protected booleanexecuteSQL(java.lang.String sql, java.lang.String spName, ParamInfo[] params, boolean update, boolean useCursor)Executes any type of SQL.protected java.sql.ResultSetexecuteSQLQuery(java.lang.String sql, java.lang.String spName, ParamInfo[] params, boolean useCursor)Executes SQL to obtain a result set.protected java.sql.SQLExceptionexecuteSybaseBatch(int size, int executeSize, java.util.ArrayList counts)Execute the SQL batch on a Sybase server.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()Called when this object goes out of scope to close anyResultSetobject and this statement.java.sql.ConnectiongetConnection()(package private) intgetDefaultFetchSize()Retrieve the default fetch size for this statement.intgetFetchDirection()intgetFetchSize()java.sql.ResultSetgetGeneratedKeys()intgetMaxFieldSize()intgetMaxRows()(package private) SQLDiagnosticgetMessages()Get the statement's warnings list.booleangetMoreResults()booleangetMoreResults(int current)intgetQueryTimeout()java.sql.ResultSetgetResultSet()intgetResultSetConcurrency()intgetResultSetHoldability()intgetResultSetType()(package private) TdsCoregetTds()Get the Statement's TDS object.intgetUpdateCount()java.sql.SQLWarninggetWarnings()booleanisClosed()booleanisCloseOnCompletion()booleanisPoolable()booleanisWrapperFor(java.lang.Class arg0)(package private) static voidnotImplemented(java.lang.String method)Report that user tried to call a method which has not been implemented.private booleanprocessResults(boolean update)Queue up update counts intoresultQueueuntil the end of the response is reached or aResultSetis encountered.protected voidreset()Resets theStatement, by cleaning up all queued and unprocessed results.voidsetCursorName(java.lang.String name)voidsetEscapeProcessing(boolean enable)voidsetFetchDirection(int direction)voidsetFetchSize(int rows)voidsetMaxFieldSize(int max)voidsetMaxRows(int max)voidsetPoolable(boolean poolable)voidsetQueryTimeout(int seconds)<T> Tunwrap(java.lang.Class<T> iface)protected booleanuseCursor(boolean returnKeys, java.lang.String sqlWord)Determines whether a cursor should be used based on the requested result set type and concurrency, whether a cursor name has been set, theuseCursorsconnection property has been set, the first word in the SQL query is either SELECT or EXEC/EXECUTE and no generated keys are returned.
-
-
-
Field Detail
-
GENKEYCOL
static final java.lang.String GENKEYCOL
Column name to be used for retrieving generated keys from the server: "_JTDS_GENE_RATED_KEYS_"- See Also:
- Constant Field Values
-
RETURN_GENERATED_KEYS
static final int RETURN_GENERATED_KEYS
- See Also:
- Constant Field Values
-
NO_GENERATED_KEYS
static final int NO_GENERATED_KEYS
- See Also:
- Constant Field Values
-
CLOSE_CURRENT_RESULT
static final int CLOSE_CURRENT_RESULT
- See Also:
- Constant Field Values
-
KEEP_CURRENT_RESULT
static final int KEEP_CURRENT_RESULT
- See Also:
- Constant Field Values
-
CLOSE_ALL_RESULTS
static final int CLOSE_ALL_RESULTS
- See Also:
- Constant Field Values
-
BOOLEAN
static final int BOOLEAN
- See Also:
- Constant Field Values
-
DATALINK
static final int DATALINK
- See Also:
- Constant Field Values
-
SUCCESS_NO_INFO
static final java.lang.Integer SUCCESS_NO_INFO
-
EXECUTE_FAILED
static final java.lang.Integer EXECUTE_FAILED
-
DEFAULT_FETCH_SIZE
static final int DEFAULT_FETCH_SIZE
- See Also:
- Constant Field Values
-
connection
protected JtdsConnection connection
The connection owning this statement object.
-
tds
protected TdsCore tds
The TDS object used for server access.
-
queryTimeout
protected int queryTimeout
The read query timeout in seconds
-
currentResult
protected JtdsResultSet currentResult
The currentResultSet.
-
updateCount
private int updateCount
The current update count.
-
fetchDirection
protected int fetchDirection
The fetch direction for result sets.
-
resultSetType
protected int resultSetType
The type of result sets created by this statement.
-
resultSetConcurrency
protected int resultSetConcurrency
The concurrency of result sets created by this statement.
-
fetchSize
protected int fetchSize
The fetch size (default 100, only used by cursorResultSets).
-
cursorName
protected java.lang.String cursorName
The cursor name to be used for positioned updates.
-
maxFieldSize
protected int maxFieldSize
The maximum field size (not used at present).
-
maxRows
protected int maxRows
The maximum number of rows to return (not used at present).
-
escapeProcessing
protected boolean escapeProcessing
True if SQL statements should be preprocessed.
-
messages
protected final SQLDiagnostic messages
SQL Diagnostic exceptions and warnings.
-
batchValues
protected java.util.ArrayList batchValues
Batched SQL Statement array.
-
genKeyResultSet
protected CachedResultSet genKeyResultSet
Dummy result set for getGeneratedKeys.
-
resultQueue
protected final java.util.LinkedList resultQueue
List of queued results (update counts, possibly followed by aResultSet).
-
openResultSets
protected java.util.ArrayList openResultSets
List of open result sets.
-
colMetaData
protected ColInfo[] colMetaData
The cached column meta data.
-
_Closed
private final java.util.concurrent.atomic.AtomicInteger _Closed
0 - this statement is open 1 - this statement is currently being closed 2 - this statement is closed
-
-
Constructor Detail
-
JtdsStatement
JtdsStatement(JtdsConnection connection, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException
Construct a new Statement object.- Parameters:
connection- The parent connection.resultSetType- The result set type for example TYPE_FORWARD_ONLY.resultSetConcurrency- The concurrency for example CONCUR_READ_ONLY.- Throws:
java.sql.SQLException
-
-
Method Detail
-
finalize
protected void finalize() throws java.lang.ThrowableCalled when this object goes out of scope to close anyResultSetobject and this statement.- Overrides:
finalizein classjava.lang.Object- Throws:
java.lang.Throwable
-
getTds
TdsCore getTds()
Get the Statement's TDS object.- Returns:
- The TDS support as a
TdsCore Object.
-
getMessages
SQLDiagnostic getMessages()
Get the statement's warnings list.- Returns:
- The warnings list as a
SQLDiagnostic.
-
checkOpen
protected void checkOpen() throws java.sql.SQLExceptionCheck that this statement is still open.- Throws:
java.sql.SQLException- if statement closed.
-
checkCursorException
protected void checkCursorException(java.sql.SQLException e) throws java.sql.SQLExceptionCheck that the exception is caused by the failure to open a cursor and not by a more serious SQL error.- Parameters:
e- the exception returned by the cursor class- Throws:
java.sql.SQLException- if exception is not due to a cursor error
-
notImplemented
static void notImplemented(java.lang.String method) throws java.sql.SQLExceptionReport that user tried to call a method which has not been implemented.- Parameters:
method- The method name to report in the error message.- Throws:
java.sql.SQLException
-
closeCurrentResultSet
void closeCurrentResultSet() throws java.sql.SQLExceptionClose current result set (if any).- Throws:
java.sql.SQLException
-
closeAllResultSets
void closeAllResultSets() throws java.sql.SQLExceptionClose all result sets.- Throws:
java.sql.SQLException
-
addWarning
void addWarning(java.sql.SQLWarning w)
Add an SQLWarning object to the statement warnings list.- Parameters:
w- The SQLWarning to add.
-
executeMSBatch
protected java.sql.SQLException executeMSBatch(int size, int executeSize, java.util.ArrayList counts) throws java.sql.SQLExceptionExecute the SQL batch on a MS server.- Parameters:
size- the total size of the batchexecuteSize- the maximum number of statements to send in one requestcounts- the returned update counts- Returns:
- chained exceptions linked to a
SQLException - Throws:
java.sql.SQLException- if a serious error occurs during execution
-
executeSybaseBatch
protected java.sql.SQLException executeSybaseBatch(int size, int executeSize, java.util.ArrayList counts) throws java.sql.SQLExceptionExecute the SQL batch on a Sybase server. Sybase needs to have the SQL concatenated into one TDS language packet. This method will be overriden forPreparedStatements.- Parameters:
size- the total size of the batchexecuteSize- the maximum number of statements to send in one requestcounts- the returned update counts- Returns:
- chained exceptions linked to a
SQLException - Throws:
java.sql.SQLException- if a serious error occurs during execution
-
executeSQLQuery
protected java.sql.ResultSet executeSQLQuery(java.lang.String sql, java.lang.String spName, ParamInfo[] params, boolean useCursor) throws java.sql.SQLExceptionExecutes SQL to obtain a result set.- Parameters:
sql- the SQL statement to executespName- optional stored procedure nameparams- optional parametersuseCursor- whether a cursor should be created for the SQL- Returns:
- the result set generated by the query
- Throws:
java.sql.SQLException
-
executeSQL
protected boolean executeSQL(java.lang.String sql, java.lang.String spName, ParamInfo[] params, boolean update, boolean useCursor) throws java.sql.SQLExceptionExecutes any type of SQL.- Parameters:
sql- the SQL statement to executespName- optional stored procedure nameparams- optional parametersupdate- whether the caller isexecuteUpdate(java.lang.String)useCursor- whether the requested result set type or concurrency or connection properties request usage of a cursor- Returns:
trueif the first result is a result set- Throws:
java.sql.SQLException- if an error condition occurs
-
processResults
private boolean processResults(boolean update) throws java.sql.SQLExceptionQueue up update counts intoresultQueueuntil the end of the response is reached or aResultSetis encountered. CallingprocessResultswhile aResultSetis open will not close it, but will consume all remaining rows.- Parameters:
update-trueif the method is called from withinexecuteUpdate- Returns:
trueif there are any results,falseotherwise- Throws:
java.sql.SQLException- if an error condition occurs
-
cacheResults
protected void cacheResults() throws java.sql.SQLExceptionCache as many results as possible (up to the firstResultSet). Called byResultSets when the end is reached.- Throws:
java.sql.SQLException
-
reset
protected void reset() throws java.sql.SQLExceptionResets theStatement, by cleaning up all queued and unprocessed results. Called by all execute methods andclose()- Throws:
java.sql.SQLException- if an error occurs
-
executeImpl
private boolean executeImpl(java.lang.String sql, int autoGeneratedKeys, boolean update) throws java.sql.SQLExceptionImplements the common functionality for plain statementexecute(java.lang.String)and {#link #executeUpdate}: basic checks, cleaning up of previous results, setting up and executing the query and loading the first results.- Parameters:
sql- an SQLINSERT,UPDATEorDELETEstatement or an SQL statement that returns nothing, such as an SQL DDL statementautoGeneratedKeys- a flag indicating whether auto-generated keys should be made available for retrievalupdate- boolean flag indicating whether the caller isexecuteUpdate(java.lang.String)-- in this case an exception is thrown if the first result is not an update count and no cursor is created (direct execution)- Returns:
trueif the first result is aResultSet,falseif it's an update count- Throws:
java.sql.SQLException- See Also:
execute(java.lang.String),executeUpdate(java.lang.String)
-
useCursor
protected boolean useCursor(boolean returnKeys, java.lang.String sqlWord)Determines whether a cursor should be used based on the requested result set type and concurrency, whether a cursor name has been set, theuseCursorsconnection property has been set, the first word in the SQL query is either SELECT or EXEC/EXECUTE and no generated keys are returned.- Parameters:
returnKeys- indicates whether keys will be returned by the querysqlWord- the first word in the SQL query; can benullif the caller isexecuteQuery(java.lang.String)- Returns:
trueif a cursor should be used,falseif not
-
getDefaultFetchSize
int getDefaultFetchSize()
Retrieve the default fetch size for this statement.- Returns:
- the default fetch size for a new
ResultSet
-
getFetchDirection
public int getFetchDirection() throws java.sql.SQLException- Specified by:
getFetchDirectionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getFetchSize
public int getFetchSize() throws java.sql.SQLException- Specified by:
getFetchSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getMaxFieldSize
public int getMaxFieldSize() throws java.sql.SQLException- Specified by:
getMaxFieldSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getMaxRows
public int getMaxRows() throws java.sql.SQLException- Specified by:
getMaxRowsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getQueryTimeout
public int getQueryTimeout() throws java.sql.SQLException- Specified by:
getQueryTimeoutin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSetConcurrency
public int getResultSetConcurrency() throws java.sql.SQLException- Specified by:
getResultSetConcurrencyin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSetHoldability
public int getResultSetHoldability() throws java.sql.SQLException- Specified by:
getResultSetHoldabilityin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSetType
public int getResultSetType() throws java.sql.SQLException- Specified by:
getResultSetTypein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getUpdateCount
public int getUpdateCount() throws java.sql.SQLException- Specified by:
getUpdateCountin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
cancel
public void cancel() throws java.sql.SQLException- Specified by:
cancelin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
clearBatch
public void clearBatch() throws java.sql.SQLException- Specified by:
clearBatchin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
clearWarnings
public void clearWarnings() throws java.sql.SQLException- Specified by:
clearWarningsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
close
public void close() throws java.sql.SQLException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getMoreResults
public boolean getMoreResults() throws java.sql.SQLException- Specified by:
getMoreResultsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeBatch
public int[] executeBatch() throws java.sql.SQLException, java.sql.BatchUpdateExceptionExecute batch of SQL Statements. The JDBC3 standard says that the behavior of this method must be consistent for any DBMS. As Sybase (and to a lesser extent SQL Server) will sometimes continue after a batch execution error, the only way to comply with the standard is to always return an array of update counts the same size as the batch list. Slots in the array beyond the last executed statement are set toEXECUTE_FAILED. There is a problem with certain statements, returning more update counts than there are batch operations. (see bug [])- Specified by:
executeBatchin interfacejava.sql.Statement- Returns:
- update counts as an
int[] - Throws:
java.sql.SQLExceptionjava.sql.BatchUpdateException
-
setFetchDirection
public void setFetchDirection(int direction) throws java.sql.SQLException- Specified by:
setFetchDirectionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setFetchSize
public void setFetchSize(int rows) throws java.sql.SQLException- Specified by:
setFetchSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setMaxFieldSize
public void setMaxFieldSize(int max) throws java.sql.SQLException- Specified by:
setMaxFieldSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setMaxRows
public void setMaxRows(int max) throws java.sql.SQLException- Specified by:
setMaxRowsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setQueryTimeout
public void setQueryTimeout(int seconds) throws java.sql.SQLException- Specified by:
setQueryTimeoutin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getMoreResults
public boolean getMoreResults(int current) throws java.sql.SQLException- Specified by:
getMoreResultsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setEscapeProcessing
public void setEscapeProcessing(boolean enable) throws java.sql.SQLException- Specified by:
setEscapeProcessingin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql) throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
addBatch
public void addBatch(java.lang.String sql) throws java.sql.SQLException- Specified by:
addBatchin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setCursorName
public void setCursorName(java.lang.String name) throws java.sql.SQLException- Specified by:
setCursorNamein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql) throws java.sql.SQLException- Specified by:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException- Specified by:
getConnectionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getGeneratedKeys
public java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException- Specified by:
getGeneratedKeysin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSet
public java.sql.ResultSet getResultSet() throws java.sql.SQLException- Specified by:
getResultSetin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getWarnings
public java.sql.SQLWarning getWarnings() throws java.sql.SQLException- Specified by:
getWarningsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeQuery
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException- Specified by:
executeQueryin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
isClosed
public boolean isClosed() throws java.sql.SQLException- Specified by:
isClosedin interfacejava.sql.Statement- Returns:
- whether this
JtdsStatementhas been closed - Throws:
java.sql.SQLException
-
isPoolable
public boolean isPoolable() throws java.sql.SQLException- Specified by:
isPoolablein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setPoolable
public void setPoolable(boolean poolable) throws java.sql.SQLException- Specified by:
setPoolablein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class arg0) throws java.sql.SQLException- Specified by:
isWrapperForin interfacejava.sql.Wrapper- Throws:
java.sql.SQLException
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException- Specified by:
unwrapin interfacejava.sql.Wrapper- Throws:
java.sql.SQLException
-
closeOnCompletion
public void closeOnCompletion() throws java.sql.SQLException- Specified by:
closeOnCompletionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws java.sql.SQLException- Specified by:
isCloseOnCompletionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
-