org.firebirdsql.jdbc

## Interface FirebirdStatement

- All Superinterfaces:
    java.lang.AutoCloseable, java.sql.Statement, java.sql.Wrapper
  All Known Subinterfaces:
    FirebirdCallableStatement, FirebirdPreparedStatement
  All Known Implementing Classes:
    AbstractCallableStatement, AbstractPreparedStatement, FBCallableStatement, FBPreparedStatement, FBStatement

      public interface FirebirdStatement
      extends java.sql.Statement

  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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.sql.ResultSet` | `getCurrentResultSet()` Get current result set.
    `int` | `getDeletedRowsCount()` Get number of deleted rows.
    `int` | `getInsertedRowsCount()` Get number of inserted rows.
    `java.lang.String` | `getLastExecutionPlan()` Get execution plan for the last executed statement.
    `int` | `getLocalStatementId()` The local statement id is intended to identify the statement for internal implementation purposes.
    `int` | `getUpdatedRowsCount()` Get number of updated rows.
    `boolean` | `hasOpenResultSet()` Check if this statement has open result set.
    `boolean` | `isClosed()` Retrieves whether this `Statement` object has been closed.
    `boolean` | `isValid()` Check if this statement is valid.

    - ### Methods inherited from interface java.sql.Statement

      `addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

    - ### Methods inherited from interface java.sql.Wrapper

      `isWrapperFor, unwrap`

- - ### Method Detail

    - #### getInsertedRowsCount

          int getInsertedRowsCount()
                                   throws java.sql.SQLException

      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:
        `java.sql.SQLException` - if database error occurs.

    - #### getUpdatedRowsCount

          int getUpdatedRowsCount()
                                  throws java.sql.SQLException

      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:
        `java.sql.SQLException` - if database error occurs.

    - #### getDeletedRowsCount

          int getDeletedRowsCount()
                                  throws java.sql.SQLException

      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:
        `java.sql.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 return `false` 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 the `Statement.getResultSet()` method).
      Returns:
        `true` if there's already open result set associated with this statement, otherwise `false`.

    - #### getCurrentResultSet

          java.sql.ResultSet getCurrentResultSet()
                                                 throws java.sql.SQLException

      Get current result set. Behaviour of this method is similar to the behavior of the `Statement.getResultSet()`, except that this method can be called as much as you like.
      Returns:
        instance of `ResultSet` representing current result set or `null` if it is not available.
      Throws:
        `java.sql.SQLException` - if database access error happened.

    - #### isValid

          boolean isValid()

      Check if this statement is valid.
      Returns:
        `true` if statement is valid and can be used to execute SQL.

    - #### getLastExecutionPlan

          java.lang.String getLastExecutionPlan()
                                                throws java.sql.SQLException

      Get execution plan for the last executed statement. Unlike the `FirebirdPreparedStatement.getExecutionPlan()`, this method can be called only after executing a query or update statement.
      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.

    - #### isClosed

          boolean isClosed()
                           throws java.sql.SQLException

      Retrieves whether this `Statement` object has been closed. A `Statement` is closed if the method close has been called on it, or if it is automatically closed.

      Provided here for compatibility with Java 5

      Specified by:
        `isClosed` in interface `java.sql.Statement`
      Returns:
        true if this `Statement` object is closed; false if it is still open
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getLocalStatementId

          int 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.

Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.