- All Superinterfaces:
AutoCloseable
,Statement
,Wrapper
- All Known Subinterfaces:
FirebirdCallableStatement
,FirebirdPreparedStatement
- All Known Implementing Classes:
AbstractStatement
,FBCallableStatement
,FBPreparedStatement
,FBStatement
Firebird-specific extensions to the
Statement
interface.- Author:
- Roman Rokytskyy
-
Field Summary
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
-
Method Summary
Modifier and TypeMethodDescription@Nullable ResultSet
Deprecated, for removal: This API element is subject to removal in a future version.int
Get number of deleted rows.@Nullable String
Gets the simple execution plan of the statement.@Nullable String
Gets the explained (or detailed) execution plan of the statement.int
Get number of inserted rows.default @Nullable String
Deprecated.usegetExecutionPlan()
; there are currently no plans to remove this methoddefault @Nullable String
Deprecated.usegetExplainedExecutionPlan()
; there are currently no plans to remove this methodint
The local statement id is intended to identify the statement for internal implementation purposes.int
Get number of updated rows.boolean
Check if this statement has open result set.boolean
isValid()
Check if this statement is valid.Methods inherited from interface java.sql.Statement
addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
Method Details
-
getInsertedRowsCount
Get number of inserted rows. You can call this method multiple times, it does not affect the JDBC result number.- Returns:
- number of inserted rows or -1 if current result is result set.
- Throws:
SQLException
- if database error occurs.
-
getUpdatedRowsCount
Get number of updated rows. You can call this method multiple times, it does not affect the JDBC result number.- Returns:
- number of updated rows or -1 if current result is result set.
- Throws:
SQLException
- if database error occurs.
-
getDeletedRowsCount
Get number of deleted rows. You can call this method multiple times, it does not affect the JDBC result number.- Returns:
- number of deleted rows or -1 if current result is result set.
- Throws:
SQLException
- if database error occurs.
-
hasOpenResultSet
boolean hasOpenResultSet()Check if this statement has open result set. Note, this method works correctly if auto-commit is disabled. In auto-commit mode it will always returnfalse
because 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).- Returns:
true
if there's already open result set associated with this statement, otherwisefalse
.
-
getCurrentResultSet
@Deprecated(since="6", forRemoval=true) @Nullable ResultSet getCurrentResultSet() throws SQLExceptionDeprecated, for removal: This API element is subject to removal in a future version.UseStatement.getResultSet()
instead, will be removed in Jaybird 7Get current result set. Behaviour of this method is similar to the behavior of theStatement.getResultSet()
.- Returns:
- instance of
ResultSet
representing current result set ornull
if it is not available. - Throws:
SQLException
- if a database access error happens
-
isValid
boolean isValid()Check if this statement is valid.- Returns:
true
if statement is valid and can be used to execute SQL.
-
getLastExecutionPlan
@Deprecated(since="6", forRemoval=false) default @Nullable String getLastExecutionPlan() throws SQLExceptionDeprecated.usegetExecutionPlan()
; there are currently no plans to remove this methodAlias forgetExecutionPlan()
.- Throws:
SQLException
-
getExecutionPlan
Gets the simple execution plan of the statement.Behaviour depends on the specific type:
Statement
but notPreparedStatement
— returns the plan of the last executed statementPreparedStatement
— returns the plan of the prepared statementCallableStatement
— is not guaranteed to return the plan until after the first execution
- Returns:
- execution plan returned by the server
- Throws:
SQLException
- if no statement was executed or prepared before calling this method, if the statement is not valid or open, or there was an error when obtaining the execution plan- Since:
- 6
- See Also:
-
getLastExplainedExecutionPlan
@Deprecated(since="6", forRemoval=false) default @Nullable String getLastExplainedExecutionPlan() throws SQLExceptionDeprecated.usegetExplainedExecutionPlan()
; there are currently no plans to remove this methodAlias forgetExplainedExecutionPlan()
.- Throws:
SQLException
- See Also:
-
getExplainedExecutionPlan
Gets the explained (or detailed) execution plan of the statement.The explained execution plan is a more structured and comprehensible form compared to the (simple) execution plan returned by
getExecutionPlan()
. This requires Firebird 3.0 or higher.Behaviour depends on the specific type:
Statement
but notPreparedStatement
— returns the plan of the last executed statementPreparedStatement
— returns the plan of the prepared statementCallableStatement
— is not guaranteed to return the plan until after the first execution
- Returns:
- execution plan returned by the server
- Throws:
SQLException
- if no statement was executed or prepared before calling this method, if the statement is not valid or open, or there was an error when obtaining the execution plan- Since:
- 6
- See Also:
-
getLocalStatementId
The 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.
- Returns:
- The local statement id.
-
Statement.getResultSet()
instead, will be removed in Jaybird 7