Class FBStatement
- java.lang.Object
- 
- org.firebirdsql.jdbc.FBStatement
 
- 
- All Implemented Interfaces:
- java.lang.AutoCloseable,- java.sql.Statement,- java.sql.Wrapper,- FirebirdStatement
 - Direct Known Subclasses:
- FBPreparedStatement
 
 public class FBStatement extends java.lang.Object implements FirebirdStatement Implementation ofStatement.- Author:
- David Jencks, Mark Rotteveel
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description protected static classFBStatement.StatementResultThe current result of a statement.
 - 
Field SummaryFields Modifier and Type Field Description protected FBConnectionconnectionprotected FBStatement.StatementResultcurrentStatementResultprotected FbStatementfbStatementprotected intfetchSizeprotected java.sql.SQLWarningfirstWarningprotected GDSHelpergdsHelperprotected booleanisSingletonResultprotected intmaxRowsprotected java.util.List<RowValue>specialResultprotected FBObjectListener.StatementListenerstatementListener
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedFBStatement(GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddBatch(java.lang.String sql)protected voidaddWarning(java.sql.SQLWarning warning)voidcancel()protected voidcheckValidity()Check if this statement is valid.voidclearBatch()voidclearWarnings()voidclose()voidcloseOnCompletion()voidcompleteStatement()voidcompleteStatement(CompletionReason reason)protected java.sql.BatchUpdateExceptioncreateBatchUpdateException(java.lang.String reason, java.lang.String sqlState, int vendorCode, java.util.List<? extends java.lang.Number> updateCounts, java.lang.Throwable cause)protected java.sql.BatchUpdateExceptioncreateBatchUpdateException(java.sql.SQLException cause, java.util.List<? extends java.lang.Number> updateCounts)protected FBResultSetcreateSpecialResultSet(FBObjectListener.ResultSetListener resultSetListener)Create the result set forspecialResult.protected StatementListenercreateStatementListener()Creates theStatementListenerto be associated with the instance ofFbStatementcreated for thisFBStatementor subclasses.java.lang.StringenquoteIdentifier(java.lang.String identifier, boolean alwaysQuote)Returns a SQL identifier.java.lang.StringenquoteLiteral(java.lang.String val)Returns aStringenclosed in single quotes.java.lang.StringenquoteNCharLiteral(java.lang.String val)booleanequals(java.lang.Object other)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()protected java.util.List<java.lang.Long>executeBatchInternal()protected booleanexecuteImpl(java.lang.String sql)Internal implementation ofexecute(String), so it can be used for normal queries and for queries returning generated keys.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)java.sql.ConnectiongetConnection()java.sql.ResultSetgetCurrentResultSet()Deprecated.UsegetResultSet()instead, will be removed in Jaybird 7intgetDeletedRowsCount()Get number of deleted rows.intgetFetchDirection()intgetFetchSize()java.sql.ResultSetgetGeneratedKeys()intgetInsertedRowsCount()Get number of inserted rows.longgetLargeMaxRows()longgetLargeUpdateCount()protected longgetLargeUpdateCountMinZero()Equivalent ofgetLargeUpdateCount(), with a minimum value of zero.java.lang.StringgetLastExecutionPlan()Get execution plan for the last executed statement.java.lang.StringgetLastExplainedExecutionPlan()Get detailed execution plan for the last executed statement.intgetLocalStatementId()The local statement id is intended to identify the statement for internal implementation purposes.intgetMaxFieldSize()intgetMaxRows()booleangetMoreResults()booleangetMoreResults(int mode)intgetQueryTimeout()java.sql.ResultSetgetResultSet()java.sql.ResultSetgetResultSet(boolean metaDataQuery)intgetResultSetConcurrency()intgetResultSetHoldability()intgetResultSetType()intgetUpdateCount()protected intgetUpdateCountMinZero()Equivalent ofgetUpdateCount(), with a minimum value of zero.intgetUpdatedRowsCount()Get number of updated rows.java.sql.SQLWarninggetWarnings()inthashCode()booleanhasOpenResultSet()Check if this statement has open result set.protected booleaninternalExecute(java.lang.String sql)protected booleaninternalExecute(RowValue rowValue)booleanisClosed()booleanisCloseOnCompletion()protected booleanisGeneratedKeyQuery()booleanisPoolable()booleanisSimpleIdentifier(java.lang.String identifier)booleanisValid()Check if this statement is valid.booleanisWrapperFor(java.lang.Class<?> iface)protected java.lang.StringnativeSQL(java.lang.String sql)protected booleanneedsScrollableCursorEnabled()protected voidnotifyStatementCompleted()Notifies statement completion.protected voidnotifyStatementCompleted(boolean success)Notifies statement completion.protected voidnotifyStatementStarted()protected voidnotifyStatementStarted(boolean closeResultSet)protected voidprepareFixedStatement(java.lang.String sql)protected FbStatementrequireStatement()voidsetCursorName(java.lang.String name)voidsetEscapeProcessing(boolean enable)voidsetFetchDirection(int direction)voidsetFetchSize(int rows)voidsetLargeMaxRows(long max)voidsetMaxFieldSize(int max)voidsetMaxRows(int max)voidsetPoolable(boolean poolable)voidsetQueryTimeout(int seconds)<T> Tunwrap(java.lang.Class<T> iface)protected LockCloseablewithLock()
 
- 
- 
- 
Field Detail- 
gdsHelperprotected final GDSHelper gdsHelper 
 - 
statementListenerprotected final FBObjectListener.StatementListener statementListener 
 - 
fbStatementprotected FbStatement fbStatement 
 - 
firstWarningprotected java.sql.SQLWarning firstWarning 
 - 
currentStatementResultprotected FBStatement.StatementResult currentStatementResult 
 - 
isSingletonResultprotected boolean isSingletonResult 
 - 
specialResultprotected final java.util.List<RowValue> specialResult 
 - 
maxRowsprotected int maxRows 
 - 
fetchSizeprotected int fetchSize 
 - 
connectionprotected final FBConnection connection 
 
- 
 - 
Constructor Detail- 
FBStatementprotected FBStatement(GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener) throws java.sql.SQLException - Throws:
- java.sql.SQLException
 
 
- 
 - 
Method Detail- 
isValidpublic boolean isValid() Description copied from interface:FirebirdStatementCheck if this statement is valid.- Specified by:
- isValidin interface- FirebirdStatement
- Returns:
- trueif statement is valid and can be used to execute SQL.
 
 - 
withLockprotected final LockCloseable withLock() - See Also:
- FbAttachment.withLock()
 
 - 
completeStatementpublic void completeStatement() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
completeStatementpublic void completeStatement(CompletionReason reason) throws java.sql.SQLException - Throws:
- java.sql.SQLException
 
 - 
executeQuerypublic java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException- Specified by:
- executeQueryin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
notifyStatementStartedprotected void notifyStatementStarted() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
notifyStatementStartedprotected void notifyStatementStarted(boolean closeResultSet) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
notifyStatementCompletedprotected void notifyStatementCompleted() throws java.sql.SQLExceptionNotifies statement completion.Equivalent to notifyStatementCompleted(true)- Throws:
- java.sql.SQLException- exception from handling statement completion (e.g. commit or rollback in auto-commit)
- See Also:
- notifyStatementCompleted(boolean)
 
 - 
notifyStatementCompletedprotected void notifyStatementCompleted(boolean success) throws java.sql.SQLExceptionNotifies statement completion.Use of success = falseshould not be generally used for failing execution. The only difference betweentrueandfalseis whether completion triggers commit or rollback in auto-commit mode, and in general, even for failed execution, a commit should be triggered. The only exception is for batch execution in auto-commit, where we rollback if one statement failed (and this behaviour is specified by JDBC as implementation-specific), and ending a transaction if statement preparation failed inFBPreparedStatement.- Parameters:
- success-- truenotify successful completion,- falsefor unsuccessful completion
- Throws:
- java.sql.SQLException- exception from handling statement completion (e.g. commit or rollback in auto-commit)
 
 - 
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
 
 - 
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
 
 - 
getGeneratedKeyspublic java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException- Specified by:
- getGeneratedKeysin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
closepublic void close() throws java.sql.SQLException- Specified by:
- closein interface- java.lang.AutoCloseable
- Specified by:
- closein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
isClosedpublic boolean isClosed() - Specified by:
- isClosedin interface- java.sql.Statement
 
 - 
getMaxFieldSizepublic int getMaxFieldSize() throws java.sql.SQLException- Specified by:
- getMaxFieldSizein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setMaxFieldSizepublic void setMaxFieldSize(int max) throws java.sql.SQLException- Specified by:
- setMaxFieldSizein 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
 
 - 
setMaxRowspublic void setMaxRows(int max) throws java.sql.SQLException- Specified by:
- setMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setEscapeProcessingpublic void setEscapeProcessing(boolean enable) throws java.sql.SQLException- Specified by:
- setEscapeProcessingin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getQueryTimeoutpublic int getQueryTimeout() throws java.sql.SQLExceptionFirebird 4 and higher also support attachment level and global statement timeouts. This method only reports the value explicitly configured for this statement. In practice, a more stringent timeout might be applied by this attachment level or global statement timeout. - Specified by:
- getQueryTimeoutin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- See Also:
- setQueryTimeout(int)
 
 - 
setQueryTimeoutpublic void setQueryTimeout(int seconds) throws java.sql.SQLExceptionQuery timeout is only supported on Firebird 4 and higher, and only for the pure-java wire protocol implementation. For earlier versions or native/embedded connections, the timeout is ignored. The maximum timeout for Firebird 4 is 4294967 seconds, higher values will be handled as if 0 was set. Firebird 4 also has attachment level and global statement timeouts. This configuration governs the statement level statement timeout only. In practice, a more stringent timeout might be applied by this attachment level or global statement timeout. Important: Query timeouts in Firebird 4 and higher have an important caveat: for result set producing statements, the timeout covers the time from execution start until the cursor is closed. This includes the time that Firebird waits for your application to fetch more rows. This means that if you execute a SELECTand take your time processing the results, the statement may be cancelled even when Firebird itself returns rows quickly.A query timeout is not applied for execution of DDL. - Specified by:
- setQueryTimeoutin 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
 
 - 
getWarningspublic java.sql.SQLWarning getWarnings() throws java.sql.SQLException- Specified by:
- getWarningsin 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
 
 - 
setCursorNamepublic void setCursorName(java.lang.String name) throws java.sql.SQLException- Specified by:
- setCursorNamein 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
 
 - 
executeImplprotected boolean executeImpl(java.lang.String sql) throws java.sql.SQLExceptionInternal implementation ofexecute(String), so it can be used for normal queries and for queries returning generated keys.- Throws:
- java.sql.SQLException
- See Also:
- execute(String)
 
 - 
getResultSetpublic java.sql.ResultSet getResultSet() throws java.sql.SQLException- Specified by:
- getResultSetin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getResultSetpublic java.sql.ResultSet getResultSet(boolean metaDataQuery) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
createSpecialResultSetprotected FBResultSet createSpecialResultSet(FBObjectListener.ResultSetListener resultSetListener) throws java.sql.SQLException Create the result set forspecialResult.Should only be called from getResultSet(boolean). This exists becauseFBCallableStatementneeds to create the result set in a slightly different way to account for the fact that the blobs were already cached earlier.- Parameters:
- resultSetListener- result set listener (can be- null)
- Returns:
- result set wrapping specialResult
- Throws:
- java.sql.SQLException
 
 - 
hasOpenResultSetpublic boolean hasOpenResultSet() Description copied from interface:FirebirdStatementCheck if this statement has open result set. Note, this method works correctly if auto-commit is disabled. In auto-commit mode it will always returnfalsebecause from the statement's point of view result set is not open (in auto-commit mode complete result set is fetched and cached in wrapping object before returning from theStatement.getResultSet()method).- Specified by:
- hasOpenResultSetin interface- FirebirdStatement
- Returns:
- trueif there's already open result set associated with this statement, otherwise- false.
 
 - 
getUpdateCountMinZeroprotected final int getUpdateCountMinZero() throws java.sql.SQLExceptionEquivalent ofgetUpdateCount(), with a minimum value of zero.For use in executeUpdatemethods as the API mandates0instead of-1for no results, and in (emulated)executeBatchmethods for consistency with server-side batch execution.- Throws:
- java.sql.SQLException
- See Also:
- getLargeUpdateCountMinZero()
 
 - 
getUpdateCountpublic int getUpdateCount() throws java.sql.SQLException- Specified by:
- getUpdateCountin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getDeletedRowsCountpublic int getDeletedRowsCount() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet number of deleted rows. You can call this method multiple times, it does not affect the JDBC result number.- Specified by:
- getDeletedRowsCountin interface- FirebirdStatement
- Returns:
- number of deleted rows or -1 if current result is result set.
- Throws:
- java.sql.SQLException- if database error occurs.
 
 - 
getInsertedRowsCountpublic int getInsertedRowsCount() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet number of inserted rows. You can call this method multiple times, it does not affect the JDBC result number.- Specified by:
- getInsertedRowsCountin interface- FirebirdStatement
- Returns:
- number of inserted rows or -1 if current result is result set.
- Throws:
- java.sql.SQLException- if database error occurs.
 
 - 
getUpdatedRowsCountpublic int getUpdatedRowsCount() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet number of updated rows. You can call this method multiple times, it does not affect the JDBC result number.- Specified by:
- getUpdatedRowsCountin interface- FirebirdStatement
- Returns:
- number of updated rows or -1 if current result is result set.
- Throws:
- java.sql.SQLException- if database error occurs.
 
 - 
getMoreResultspublic boolean getMoreResults() throws java.sql.SQLException- Specified by:
- getMoreResultsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getMoreResultspublic boolean getMoreResults(int mode) throws java.sql.SQLException- Specified by:
- getMoreResultsin 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
 
 - 
getFetchDirectionpublic int getFetchDirection() throws java.sql.SQLException- Specified by:
- getFetchDirectionin 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
 
 - 
getFetchSizepublic int getFetchSize() throws java.sql.SQLException- Specified by:
- getFetchSizein 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
 
 - 
getResultSetTypepublic int getResultSetType() throws java.sql.SQLException- Specified by:
- getResultSetTypein 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
 
 - 
addBatchpublic void addBatch(java.lang.String sql) throws java.sql.SQLException- Specified by:
- addBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
clearBatchpublic void clearBatch() throws java.sql.SQLException- Specified by:
- clearBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeBatchpublic final int[] executeBatch() throws java.sql.SQLException- Specified by:
- executeBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeBatchInternalprotected java.util.List<java.lang.Long> executeBatchInternal() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
createBatchUpdateExceptionprotected final java.sql.BatchUpdateException createBatchUpdateException(java.sql.SQLException cause, java.util.List<? extends java.lang.Number> updateCounts)
 - 
createBatchUpdateExceptionprotected final java.sql.BatchUpdateException createBatchUpdateException(java.lang.String reason, java.lang.String sqlState, int vendorCode, java.util.List<? extends java.lang.Number> updateCounts, java.lang.Throwable cause)
 - 
getConnectionpublic java.sql.Connection getConnection() throws java.sql.SQLException- Specified by:
- getConnectionin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getCurrentResultSet@Deprecated public java.sql.ResultSet getCurrentResultSet() throws java.sql.SQLExceptionDeprecated.UsegetResultSet()instead, will be removed in Jaybird 7Get current result set. Behaviour of this method is similar to the behavior of theStatement.getResultSet().- Specified by:
- getCurrentResultSetin interface- FirebirdStatement
- Returns:
- instance of ResultSetrepresenting current result set ornullif it is not available.
- Throws:
- java.sql.SQLException- if a database access error happens
 
 - 
isPoolablepublic boolean isPoolable() throws java.sql.SQLException- Specified by:
- isPoolablein 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
 
 - 
isWrapperForpublic boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException- Specified by:
- isWrapperForin interface- java.sql.Wrapper
- Throws:
- java.sql.SQLException
 
 - 
unwrappublic <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException- Specified by:
- unwrapin interface- java.sql.Wrapper
- Throws:
- java.sql.SQLException
 
 - 
closeOnCompletionpublic void closeOnCompletion() - Specified by:
- closeOnCompletionin interface- java.sql.Statement
 
 - 
isCloseOnCompletionpublic boolean isCloseOnCompletion() - Specified by:
- isCloseOnCompletionin interface- java.sql.Statement
 
 - 
internalExecuteprotected boolean internalExecute(java.lang.String sql) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
internalExecuteprotected boolean internalExecute(RowValue rowValue) throws java.sql.SQLException - Throws:
- java.sql.SQLException
 
 - 
prepareFixedStatementprotected void prepareFixedStatement(java.lang.String sql) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
requireStatementprotected FbStatement requireStatement() throws java.sql.SQLException - Throws:
- java.sql.SQLException
 
 - 
needsScrollableCursorEnabledprotected boolean needsScrollableCursorEnabled() 
 - 
addWarningprotected void addWarning(java.sql.SQLWarning warning) 
 - 
nativeSQLprotected java.lang.String nativeSQL(java.lang.String sql) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
isGeneratedKeyQueryprotected boolean isGeneratedKeyQuery() - Returns:
- truewhen the current statement is expected to return generated keys,- falseotherwise.
 
 - 
getLastExecutionPlanpublic java.lang.String getLastExecutionPlan() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet execution plan for the last executed statement. Unlike theFirebirdPreparedStatement.getExecutionPlan(), this method can be called only after executing a query or update statement.- Specified by:
- getLastExecutionPlanin interface- FirebirdStatement
- Returns:
- execution plan returned by the server.
- Throws:
- java.sql.SQLException- if no statement was executed before calling this method, statement is not valid, or there was an error when obtaining the execution plan.
 
 - 
getLastExplainedExecutionPlanpublic java.lang.String getLastExplainedExecutionPlan() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet detailed execution plan for the last executed statement. More structured and comprehensible form. Can be called only after executing a query or update statement.- Specified by:
- getLastExplainedExecutionPlanin interface- FirebirdStatement
- Returns:
- detailed execution plan returned by the server.
- Throws:
- java.sql.SQLException- if no statement was executed before calling this method, statement is not valid, or there was an error when obtaining the execution plan.
 
 - 
checkValidityprotected void checkValidity() throws java.sql.SQLExceptionCheck if this statement is valid. This method should be invoked before executing any action which requires a valid connection.- Throws:
- java.sql.SQLException- if this Statement has been closed and cannot be used anymore.
 
 - 
getLargeUpdateCountMinZeroprotected final long getLargeUpdateCountMinZero() throws java.sql.SQLExceptionEquivalent ofgetLargeUpdateCount(), with a minimum value of zero.For use in executeLargeUpdatemethods as the API mandates0instead of-1for no results, and in (emulated)executeBatchmethods for consistency with server-side batch execution.- Throws:
- java.sql.SQLException
- See Also:
- getUpdateCountMinZero()
 
 - 
getLargeUpdateCountpublic long getLargeUpdateCount() throws java.sql.SQLException- Specified by:
- getLargeUpdateCountin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
setLargeMaxRowspublic void setLargeMaxRows(long max) throws java.sql.SQLExceptionJaybird does not support maxRows exceeding Integer.MAX_VALUE, if a larger value is set, Jaybird will add a warning to the statement and reset the maximum to 0.- Specified by:
- setLargeMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getLargeMaxRowspublic long getLargeMaxRows() throws java.sql.SQLExceptionJaybird does not support maxRows exceeding Integer.MAX_VALUE, the return value of this method is the same asgetMaxRows().- Specified by:
- getLargeMaxRowsin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeLargeBatchpublic final long[] executeLargeBatch() throws java.sql.SQLException- Specified by:
- executeLargeBatchin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeLargeUpdatepublic final long executeLargeUpdate(java.lang.String sql) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeLargeUpdatepublic final long executeLargeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeLargeUpdatepublic final long executeLargeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
- executeLargeUpdatein interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
executeLargeUpdatepublic final 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
 
 - 
enquoteLiteralpublic java.lang.String enquoteLiteral(java.lang.String val) throws java.sql.SQLExceptionReturns aStringenclosed in single quotes. Any occurrence of a single quote within the string will be replaced by two single quotes.For a dialect 3 database, this will behave exactly like the JDBC 4.3 default implementation. For a dialect 1 database this will quote literals with double quotes and escape double quotes by doubling. - Specified by:
- enquoteLiteralin interface- java.sql.Statement
- Parameters:
- val- a character string
- Returns:
- A string enclosed by single quotes with every single quote converted to two single quotes
- Throws:
- java.lang.NullPointerException- if val is- null
- java.sql.SQLException- if a database access error occurs
 
 - 
enquoteNCharLiteralpublic java.lang.String enquoteNCharLiteral(java.lang.String val) throws java.sql.SQLException- Specified by:
- enquoteNCharLiteralin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
- See Also:
- enquoteLiteral(String)
 
 - 
enquoteIdentifierpublic java.lang.String enquoteIdentifier(java.lang.String identifier, boolean alwaysQuote) throws java.sql.SQLExceptionReturns a SQL identifier. Ifidentifieris a simple SQL identifier:- Return the original value if alwaysQuoteisfalse
- Return a delimited identifier if alwaysQuoteistrue
 - Specified by:
- enquoteIdentifierin interface- java.sql.Statement
- Parameters:
- identifier- a SQL identifier
- alwaysQuote- indicates if a simple SQL identifier should be returned as a quoted identifier
- Returns:
- A simple SQL identifier or a delimited identifier
- Throws:
- java.sql.SQLException- if identifier is not a valid identifier
- java.sql.SQLFeatureNotSupportedException- if the datasource does not support delimited identifiers (ie: a dialect 1 database)
- java.lang.NullPointerException- if identifier is- null
 
- Return the original value if 
 - 
isSimpleIdentifierpublic boolean isSimpleIdentifier(java.lang.String identifier) throws java.sql.SQLException- Specified by:
- isSimpleIdentifierin interface- java.sql.Statement
- Throws:
- java.sql.SQLException
 
 - 
getLocalStatementIdpublic final int getLocalStatementId() Description copied from interface:FirebirdStatementThe local statement id is intended to identify the statement for internal implementation purposes.NOTE: This method is only included in this interface to try and avoid problems with proxied and bytecode enhanced classes in certain libraries, you should normally have no reason to call this method directly. The id is expected - but not guaranteed - to be unique for a single connection, and - preferably - for the entire JVM run time as well. - Specified by:
- getLocalStatementIdin interface- FirebirdStatement
- Returns:
- The local statement id.
 
 - 
hashCodepublic final int hashCode() - Overrides:
- hashCodein class- java.lang.Object
 
 - 
equalspublic final boolean equals(java.lang.Object other) - Overrides:
- equalsin class- java.lang.Object
 
 - 
createStatementListenerprotected StatementListener createStatementListener() Creates theStatementListenerto be associated with the instance ofFbStatementcreated for thisFBStatementor subclasses.- Returns:
- instance of StatementListener
 
 
- 
 
-