Package org.firebirdsql.jdbc

## Class AbstractPreparedStatement

- java.lang.Object
- - org.firebirdsql.jdbc.FBStatement
  - - org.firebirdsql.jdbc.AbstractPreparedStatement

All Implemented Interfaces:
  `java.lang.AutoCloseable`, `java.sql.PreparedStatement`, `java.sql.Statement`, `java.sql.Wrapper`, `FirebirdPreparedStatement`, `FirebirdStatement`, `Synchronizable`

Direct Known Subclasses:
  `FBPreparedStatement`

    public abstract class AbstractPreparedStatement
    extends FBStatement
    implements FirebirdPreparedStatement

Abstract implementation of `PreparedStatement`.

Author:
  David Jencks, Roman Rokytskyy, Mark Rotteveel

### Nested Class Summary

### Nested classes/interfaces inherited from class org.firebirdsql.jdbc.FBStatement

`FBStatement.StatementResult`

### Field Summary

Fields
`protected java.util.List<java.lang.Object>` `batchList`
`static java.lang.String` `METHOD_NOT_SUPPORTED`

### Fields inherited from class org.firebirdsql.jdbc.FBStatement

`completed, connection, currentStatementResult, fbStatement, fetchSize, firstWarning, gdsHelper, isSingletonResult, jdbcVersionSupport, maxRows, specialResult, statementListener`

### Fields inherited from interface org.firebirdsql.jdbc.FirebirdPreparedStatement

`TYPE_COMMIT, TYPE_DDL, TYPE_DELETE, TYPE_EXEC_PROCEDURE, TYPE_GET_SEGMENT, TYPE_INSERT, TYPE_PUT_SEGMENT, TYPE_ROLLBACK, TYPE_SELECT, TYPE_SELECT_FOR_UPDATE, TYPE_SET_GENERATOR, TYPE_START_TRANS, TYPE_UPDATE`

### 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`

### Constructor Summary

Constructors
`protected` `AbstractPreparedStatement​(GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener)` Create instance of this class for the specified result set type and concurrency.
`protected` `AbstractPreparedStatement​(GDSHelper c, java.lang.String sql, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener, boolean metaDataQuery, boolean standaloneStatement, boolean generatedKeys)` Create instance of this class and prepare SQL statement.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`void` `addBatch()`
`void` `addBatch​(java.lang.String sql)`
`void` `clearBatch()`
`void` `clearParameters()`
`void` `completeStatement​(CompletionReason reason)`
`boolean` `execute()`
`boolean` `execute​(java.lang.String sql)`
`boolean` `execute​(java.lang.String sql, int autoGeneratedKeys)`
`boolean` `execute​(java.lang.String sql, int[] columnIndexes)`
`boolean` `execute​(java.lang.String sql, java.lang.String[] columnNames)`
`protected java.util.List<java.lang.Long>` `executeBatchInternal()`
`long` `executeLargeUpdate()`
`java.sql.ResultSet` `executeQuery()`
`java.sql.ResultSet` `executeQuery​(java.lang.String sql)`
`int` `executeUpdate()`
`int` `executeUpdate​(java.lang.String sql)`
`int` `executeUpdate​(java.lang.String sql, int autoGeneratedKeys)`
`int` `executeUpdate​(java.lang.String sql, int[] columnIndex)`
`int` `executeUpdate​(java.lang.String sql, java.lang.String[] columnNames)`
`java.lang.String` `getExecutionPlan()` Get the execution plan of this PreparedStatement
`java.lang.String` `getExplainedExecutionPlan()` Get the detailed execution plan of this PreparedStatement
`protected FBField` `getField​(int columnIndex)` Factory method for the field access objects
`FirebirdParameterMetaData` `getFirebirdParameterMetaData()`
`java.sql.ResultSetMetaData` `getMetaData()`
`protected FieldDescriptor` `getParameterDescriptor​(int columnIndex)` Returns the `FieldDescriptor` of the specified parameter.
`java.sql.ParameterMetaData` `getParameterMetaData()`
`int` `getStatementType()` Get the statement type of this PreparedStatement.
`protected boolean` `internalExecute​(boolean sendOutParams)` Execute this statement.
`protected boolean` `isGeneratedKeyQuery()`
`protected void` `notifyStatementCompleted​(boolean success)`
`protected void` `prepareFixedStatement​(java.lang.String sql)` Prepare fixed statement and initialize parameters.
`void` `setArray​(int i, java.sql.Array x)`
`void` `setAsciiStream​(int parameterIndex, java.io.InputStream x)`
`void` `setAsciiStream​(int parameterIndex, java.io.InputStream x, int length)`
`void` `setAsciiStream​(int parameterIndex, java.io.InputStream x, long length)`
`void` `setBigDecimal​(int parameterIndex, java.math.BigDecimal x)`
`void` `setBinaryStream​(int parameterIndex, java.io.InputStream inputStream)`
`void` `setBinaryStream​(int parameterIndex, java.io.InputStream inputStream, int length)`
`void` `setBinaryStream​(int parameterIndex, java.io.InputStream inputStream, long length)`
`void` `setBlob​(int parameterIndex, java.io.InputStream inputStream)`
`void` `setBlob​(int parameterIndex, java.io.InputStream inputStream, long length)`
`void` `setBlob​(int parameterIndex, java.sql.Blob blob)`
`void` `setBoolean​(int parameterIndex, boolean x)`
`void` `setByte​(int parameterIndex, byte x)`
`void` `setBytes​(int parameterIndex, byte[] x)`
`void` `setCharacterStream​(int parameterIndex, java.io.Reader reader)`
`void` `setCharacterStream​(int parameterIndex, java.io.Reader reader, int length)`
`void` `setCharacterStream​(int parameterIndex, java.io.Reader reader, long length)`
`void` `setClob​(int parameterIndex, java.io.Reader reader)`
`void` `setClob​(int parameterIndex, java.io.Reader reader, long length)`
`void` `setClob​(int parameterIndex, java.sql.Clob clob)`
`void` `setDate​(int parameterIndex, java.sql.Date x)`
`void` `setDate​(int parameterIndex, java.sql.Date x, java.util.Calendar cal)`
`void` `setDouble​(int parameterIndex, double x)`
`void` `setFloat​(int parameterIndex, float x)`
`void` `setInt​(int parameterIndex, int x)`
`void` `setLong​(int parameterIndex, long x)`
`void` `setNCharacterStream​(int parameterIndex, java.io.Reader value)`
`void` `setNCharacterStream​(int parameterIndex, java.io.Reader value, long length)`
`void` `setNClob​(int parameterIndex, java.io.Reader reader)`
`void` `setNClob​(int parameterIndex, java.io.Reader reader, long length)`
`void` `setNClob​(int parameterIndex, java.sql.NClob value)`
`void` `setNString​(int parameterIndex, java.lang.String value)`
`void` `setNull​(int parameterIndex, int sqlType)`
`void` `setNull​(int parameterIndex, int sqlType, java.lang.String typeName)`
`void` `setObject​(int parameterIndex, java.lang.Object x)`
`void` `setObject​(int parameterIndex, java.lang.Object x, int targetSqlType)`
`void` `setObject​(int parameterIndex, java.lang.Object x, int targetSqlType, int scale)`
`void` `setRef​(int i, java.sql.Ref x)`
`void` `setRowId​(int parameterIndex, java.sql.RowId x)`
`void` `setShort​(int parameterIndex, short x)`
`void` `setSQLXML​(int parameterIndex, java.sql.SQLXML xmlObject)`
`void` `setString​(int parameterIndex, java.lang.String x)`
`void` `setStringForced​(int parameterIndex, java.lang.String x)` Sets the designated parameter to the given String value.
`void` `setTime​(int parameterIndex, java.sql.Time x)`
`void` `setTime​(int parameterIndex, java.sql.Time x, java.util.Calendar cal)`
`void` `setTimestamp​(int parameterIndex, java.sql.Timestamp x)`
`void` `setTimestamp​(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal)`
`void` `setUnicodeStream​(int parameterIndex, java.io.InputStream x, int length)` Deprecated.
`void` `setURL​(int parameterIndex, java.net.URL url)`

### Methods inherited from class org.firebirdsql.jdbc.FBStatement

`addWarning, cancel, checkValidity, clearWarnings, close, closeOnCompletion, completeStatement, createSpecialResultSet, createStatementListener, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, equals, executeBatch, executeImpl, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, finalize, forgetResultSet, getConnection, getCurrentResultSet, getDeletedRowsCount, getFetchDirection, getFetchSize, getGeneratedKeys, getInsertedRowsCount, getLargeMaxRows, getLargeUpdateCount, getLastExecutionPlan, getLastExplainedExecutionPlan, getLocalStatementId, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getSynchronizationObject, getUpdateCount, getUpdatedRowsCount, getWarnings, hashCode, hasOpenResultSet, internalExecute, isClosed, isCloseOnCompletion, isExecuteProcedureStatement, isPoolable, isSimpleIdentifier, isValid, isWrapperFor, nativeSQL, notifyStatementCompleted, notifyStatementStarted, notifyStatementStarted, requireStatement, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, toArray, toLargeArray, unwrap`

### Methods inherited from class java.lang.Object

`clone, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.firebirdsql.jdbc.FirebirdStatement

`getCurrentResultSet, getDeletedRowsCount, getInsertedRowsCount, getLastExecutionPlan, getLastExplainedExecutionPlan, getLocalStatementId, getUpdatedRowsCount, hasOpenResultSet, isValid`

### Methods inherited from interface java.sql.PreparedStatement

`setObject, setObject`

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

`cancel, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, 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`

### Field Detail

#### METHOD_NOT_SUPPORTED

    public static final java.lang.String METHOD_NOT_SUPPORTED

See Also:
  Constant Field Values

#### batchList

    protected final java.util.List<java.lang.Object> batchList

### Constructor Detail

#### AbstractPreparedStatement

    protected AbstractPreparedStatement​(GDSHelper c,
                                        int rsType,
                                        int rsConcurrency,
                                        int rsHoldability,
                                        FBObjectListener.StatementListener statementListener,
                                        FBObjectListener.BlobListener blobListener)
                                 throws java.sql.SQLException

Create instance of this class for the specified result set type and concurrency. This constructor is used only in `FBCallableStatement` since the statement is prepared right before the execution.

Parameters:
  `c` - instance of `GDSHelper` that will be used to perform all database activities.
  `rsType` - desired result set type.
  `rsConcurrency` - desired result set concurrency.
  `statementListener` - statement listener that will be notified about the statement start, close and completion.
Throws:
  `java.sql.SQLException` - if something went wrong.

#### AbstractPreparedStatement

    protected AbstractPreparedStatement​(GDSHelper c,
                                        java.lang.String sql,
                                        int rsType,
                                        int rsConcurrency,
                                        int rsHoldability,
                                        FBObjectListener.StatementListener statementListener,
                                        FBObjectListener.BlobListener blobListener,
                                        boolean metaDataQuery,
                                        boolean standaloneStatement,
                                        boolean generatedKeys)
                                 throws java.sql.SQLException

Create instance of this class and prepare SQL statement.

Parameters:
  `c` - connection to be used.
  `sql` - SQL statement to prepare.
  `rsType` - type of result set to create.
  `rsConcurrency` - result set concurrency.
Throws:
  `java.sql.SQLException` - if something went wrong.

### Method Detail

#### completeStatement

    public void completeStatement​(CompletionReason reason)
                           throws java.sql.SQLException

Overrides:
  `completeStatement` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### notifyStatementCompleted

    protected void notifyStatementCompleted​(boolean success)
                                     throws java.sql.SQLException

Overrides:
  `notifyStatementCompleted` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeQuery

    public java.sql.ResultSet executeQuery()
                                    throws java.sql.SQLException

Specified by:
  `executeQuery` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### executeUpdate

    public int executeUpdate()
                      throws java.sql.SQLException

Specified by:
  `executeUpdate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### getFirebirdParameterMetaData

    public FirebirdParameterMetaData getFirebirdParameterMetaData()
                                                           throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setNull

    public void setNull​(int parameterIndex,
                        int sqlType)
                 throws java.sql.SQLException

Specified by:
  `setNull` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public void setBinaryStream​(int parameterIndex,
                                java.io.InputStream inputStream,
                                int length)
                         throws java.sql.SQLException

Specified by:
  `setBinaryStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public void setBinaryStream​(int parameterIndex,
                                java.io.InputStream inputStream,
                                long length)
                         throws java.sql.SQLException

Specified by:
  `setBinaryStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public void setBinaryStream​(int parameterIndex,
                                java.io.InputStream inputStream)
                         throws java.sql.SQLException

Specified by:
  `setBinaryStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBytes

    public void setBytes​(int parameterIndex,
                         byte[] x)
                  throws java.sql.SQLException

Specified by:
  `setBytes` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBoolean

    public void setBoolean​(int parameterIndex,
                           boolean x)
                    throws java.sql.SQLException

Specified by:
  `setBoolean` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setByte

    public void setByte​(int parameterIndex,
                        byte x)
                 throws java.sql.SQLException

Specified by:
  `setByte` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setDate

    public void setDate​(int parameterIndex,
                        java.sql.Date x)
                 throws java.sql.SQLException

Specified by:
  `setDate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setDouble

    public void setDouble​(int parameterIndex,
                          double x)
                   throws java.sql.SQLException

Specified by:
  `setDouble` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setFloat

    public void setFloat​(int parameterIndex,
                         float x)
                  throws java.sql.SQLException

Specified by:
  `setFloat` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setInt

    public void setInt​(int parameterIndex,
                       int x)
                throws java.sql.SQLException

Specified by:
  `setInt` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setLong

    public void setLong​(int parameterIndex,
                        long x)
                 throws java.sql.SQLException

Specified by:
  `setLong` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(int parameterIndex,
                          java.lang.Object x)
                   throws java.sql.SQLException

Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setShort

    public void setShort​(int parameterIndex,
                         short x)
                  throws java.sql.SQLException

Specified by:
  `setShort` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setString

    public void setString​(int parameterIndex,
                          java.lang.String x)
                   throws java.sql.SQLException

Specified by:
  `setString` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setStringForced

    public void setStringForced​(int parameterIndex,
                                java.lang.String x)
                         throws java.sql.SQLException

Sets the designated parameter to the given String value. This is a workaround for the ambiguous "operation was cancelled" response from the server for when an oversized string is set for a limited-size field. This method sets the string parameter without checking size constraints.

Parameters:
  `parameterIndex` - the first parameter is 1, the second is 2, ...
  `x` - The String value to be set
Throws:
  `java.sql.SQLException` - if a database access occurs

#### setTime

    public void setTime​(int parameterIndex,
                        java.sql.Time x)
                 throws java.sql.SQLException

Specified by:
  `setTime` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTimestamp

    public void setTimestamp​(int parameterIndex,
                             java.sql.Timestamp x)
                      throws java.sql.SQLException

Specified by:
  `setTimestamp` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBigDecimal

    public void setBigDecimal​(int parameterIndex,
                              java.math.BigDecimal x)
                       throws java.sql.SQLException

Specified by:
  `setBigDecimal` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### getParameterDescriptor

    protected FieldDescriptor getParameterDescriptor​(int columnIndex)

Returns the `FieldDescriptor` of the specified parameter.

Parameters:
  `columnIndex` - 1-based index of the parameter
Returns:
  Field descriptor

#### getField

    protected FBField getField​(int columnIndex)
                        throws java.sql.SQLException

Factory method for the field access objects

Throws:
  `java.sql.SQLException`

#### setAsciiStream

    public final void setAsciiStream​(int parameterIndex,
                                     java.io.InputStream x,
                                     int length)
                              throws java.sql.SQLException

Implementation note: works identical to `setBinaryStream(int, InputStream, int)`.

Specified by:
  `setAsciiStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setAsciiStream

    public final void setAsciiStream​(int parameterIndex,
                                     java.io.InputStream x,
                                     long length)
                              throws java.sql.SQLException

Implementation note: works identical to `setBinaryStream(int, InputStream, long)`.

Specified by:
  `setAsciiStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setAsciiStream

    public final void setAsciiStream​(int parameterIndex,
                                     java.io.InputStream x)
                              throws java.sql.SQLException

Implementation note: works identical to `setBinaryStream(int, InputStream)`.

Specified by:
  `setAsciiStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setUnicodeStream

    @Deprecated
    public void setUnicodeStream​(int parameterIndex,
                                 java.io.InputStream x,
                                 int length)
                          throws java.sql.SQLException

Deprecated.
Method is no longer supported since Jaybird 3.0.

For old behavior use `setBinaryStream(int, InputStream, int)`. For JDBC suggested behavior, use `setCharacterStream(int, Reader, int)`.

Specified by:
  `setUnicodeStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLFeatureNotSupportedException` - Always
  `java.sql.SQLException`

#### setURL

    public void setURL​(int parameterIndex,
                       java.net.URL url)
                throws java.sql.SQLException

Jaybird does not support array types.

Specified by:
  `setURL` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNCharacterStream

    public void setNCharacterStream​(int parameterIndex,
                                    java.io.Reader value,
                                    long length)
                             throws java.sql.SQLException

Implementation note: This method behaves exactly the same as `setCharacterStream(int, Reader, long)`.

Specified by:
  `setNCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNCharacterStream

    public void setNCharacterStream​(int parameterIndex,
                                    java.io.Reader value)
                             throws java.sql.SQLException

Implementation note: This method behaves exactly the same as `setCharacterStream(int, Reader)`.

Specified by:
  `setNCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNClob

    public void setNClob​(int parameterIndex,
                         java.io.Reader reader,
                         long length)
                  throws java.sql.SQLException

Implementation note: This method behaves exactly the same as `setClob(int, Reader, long)`.

Specified by:
  `setNClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNClob

    public void setNClob​(int parameterIndex,
                         java.io.Reader reader)
                  throws java.sql.SQLException

Implementation note: This method behaves exactly the same as `setClob(int, Reader)`.

Specified by:
  `setNClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNString

    public void setNString​(int parameterIndex,
                           java.lang.String value)
                    throws java.sql.SQLException

Implementation note: This method behaves exactly the same as `setString(int, String)`.

Specified by:
  `setNString` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### clearParameters

    public void clearParameters()
                         throws java.sql.SQLException

Specified by:
  `clearParameters` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(int parameterIndex,
                          java.lang.Object x,
                          int targetSqlType,
                          int scale)
                   throws java.sql.SQLException

Implementation note: ignores `scale` and `targetSqlType` and works as `setObject(int, Object)`.

Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(int parameterIndex,
                          java.lang.Object x,
                          int targetSqlType)
                   throws java.sql.SQLException

Implementation note: ignores `targetSqlType` and works as `setObject(int, Object)`.

Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### execute

    public boolean execute()
                    throws java.sql.SQLException

Specified by:
  `execute` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### internalExecute

    protected boolean internalExecute​(boolean sendOutParams)
                               throws java.sql.SQLException

Execute this statement. Method checks whether all parameters are set, flushes all "flushable" fields that might contain cached data and executes the statement.

Parameters:
  `sendOutParams` - Determines if the XSQLDA structure should be sent to the database
Returns:
  `true` if the statement has more result sets.
Throws:
  `java.sql.SQLException`

#### isGeneratedKeyQuery

    protected boolean isGeneratedKeyQuery()

Overrides:
  `isGeneratedKeyQuery` in class `FBStatement`
Returns:
  `true` when the current statement is expected to return generated keys, `false` otherwise.

#### addBatch

    public void addBatch()
                  throws java.sql.SQLException

Specified by:
  `addBatch` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### clearBatch

    public void clearBatch()
                    throws java.sql.SQLException

Specified by:
  `clearBatch` in interface `java.sql.Statement`
Overrides:
  `clearBatch` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeBatchInternal

    protected java.util.List<java.lang.Long> executeBatchInternal()
                                                           throws java.sql.SQLException

Overrides:
  `executeBatchInternal` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public void setCharacterStream​(int parameterIndex,
                                   java.io.Reader reader,
                                   int length)
                            throws java.sql.SQLException

Specified by:
  `setCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public void setCharacterStream​(int parameterIndex,
                                   java.io.Reader reader,
                                   long length)
                            throws java.sql.SQLException

Specified by:
  `setCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public void setCharacterStream​(int parameterIndex,
                                   java.io.Reader reader)
                            throws java.sql.SQLException

Specified by:
  `setCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setRef

    public void setRef​(int i,
                       java.sql.Ref x)
                throws java.sql.SQLException

Jaybird does not support ref types.

Specified by:
  `setRef` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBlob

    public void setBlob​(int parameterIndex,
                        java.sql.Blob blob)
                 throws java.sql.SQLException

Specified by:
  `setBlob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBlob

    public void setBlob​(int parameterIndex,
                        java.io.InputStream inputStream,
                        long length)
                 throws java.sql.SQLException

Specified by:
  `setBlob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBlob

    public void setBlob​(int parameterIndex,
                        java.io.InputStream inputStream)
                 throws java.sql.SQLException

Specified by:
  `setBlob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setClob

    public void setClob​(int parameterIndex,
                        java.sql.Clob clob)
                 throws java.sql.SQLException

Specified by:
  `setClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setClob

    public void setClob​(int parameterIndex,
                        java.io.Reader reader,
                        long length)
                 throws java.sql.SQLException

Specified by:
  `setClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setClob

    public void setClob​(int parameterIndex,
                        java.io.Reader reader)
                 throws java.sql.SQLException

Specified by:
  `setClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setArray

    public void setArray​(int i,
                         java.sql.Array x)
                  throws java.sql.SQLException

Jaybird does not support array types.

Specified by:
  `setArray` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### getMetaData

    public java.sql.ResultSetMetaData getMetaData()
                                           throws java.sql.SQLException

Specified by:
  `getMetaData` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setDate

    public void setDate​(int parameterIndex,
                        java.sql.Date x,
                        java.util.Calendar cal)
                 throws java.sql.SQLException

Specified by:
  `setDate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTime

    public void setTime​(int parameterIndex,
                        java.sql.Time x,
                        java.util.Calendar cal)
                 throws java.sql.SQLException

Specified by:
  `setTime` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTimestamp

    public void setTimestamp​(int parameterIndex,
                             java.sql.Timestamp x,
                             java.util.Calendar cal)
                      throws java.sql.SQLException

Specified by:
  `setTimestamp` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNull

    public void setNull​(int parameterIndex,
                        int sqlType,
                        java.lang.String typeName)
                 throws java.sql.SQLException

Specified by:
  `setNull` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### prepareFixedStatement

    protected void prepareFixedStatement​(java.lang.String sql)
                                  throws java.sql.SQLException

Prepare fixed statement and initialize parameters.

Overrides:
  `prepareFixedStatement` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### getExecutionPlan

    public java.lang.String getExecutionPlan()
                                      throws java.sql.SQLException

Description copied from interface: `FirebirdPreparedStatement`
Get the execution plan of this PreparedStatement

Specified by:
  `getExecutionPlan` in interface `FirebirdPreparedStatement`
Returns:
  The execution plan of the statement
Throws:
  `java.sql.SQLException`

#### getExplainedExecutionPlan

    public java.lang.String getExplainedExecutionPlan()
                                               throws java.sql.SQLException

Description copied from interface: `FirebirdPreparedStatement`
Get the detailed execution plan of this PreparedStatement

Specified by:
  `getExplainedExecutionPlan` in interface `FirebirdPreparedStatement`
Returns:
  The detailed execution plan of the statement
Throws:
  `java.sql.SQLException`

#### getStatementType

    public int getStatementType()
                         throws java.sql.SQLException

Description copied from interface: `FirebirdPreparedStatement`
Get the statement type of this PreparedStatement. The returned value will be one of the `TYPE_*` constant values.

Specified by:
  `getStatementType` in interface `FirebirdPreparedStatement`
Returns:
  The identifier for the given statement's type
Throws:
  `java.sql.SQLException`

#### getParameterMetaData

    public java.sql.ParameterMetaData getParameterMetaData()
                                                    throws java.sql.SQLException

Specified by:
  `getParameterMetaData` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNClob

    public void setNClob​(int parameterIndex,
                         java.sql.NClob value)
                  throws java.sql.SQLException

Implementation note: This method behaves exactly the same as `setClob(int, Clob)`.

Specified by:
  `setNClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setRowId

    public void setRowId​(int parameterIndex,
                         java.sql.RowId x)
                  throws java.sql.SQLException

Specified by:
  `setRowId` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setSQLXML

    public void setSQLXML​(int parameterIndex,
                          java.sql.SQLXML xmlObject)
                   throws java.sql.SQLException

Jaybird does not support SQLXML.

Specified by:
  `setSQLXML` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### executeQuery

    public java.sql.ResultSet executeQuery​(java.lang.String sql)
                                    throws java.sql.SQLException

Specified by:
  `executeQuery` in interface `java.sql.Statement`
Overrides:
  `executeQuery` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeUpdate

    public int executeUpdate​(java.lang.String sql)
                      throws java.sql.SQLException

Specified by:
  `executeUpdate` in interface `java.sql.Statement`
Overrides:
  `executeUpdate` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### execute

    public boolean execute​(java.lang.String sql)
                    throws java.sql.SQLException

Specified by:
  `execute` in interface `java.sql.Statement`
Overrides:
  `execute` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### addBatch

    public void addBatch​(java.lang.String sql)
                  throws java.sql.SQLException

Specified by:
  `addBatch` in interface `java.sql.Statement`
Overrides:
  `addBatch` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeUpdate

    public int executeUpdate​(java.lang.String sql,
                             int autoGeneratedKeys)
                      throws java.sql.SQLException

Specified by:
  `executeUpdate` in interface `java.sql.Statement`
Overrides:
  `executeUpdate` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeUpdate

    public int executeUpdate​(java.lang.String sql,
                             int[] columnIndex)
                      throws java.sql.SQLException

Specified by:
  `executeUpdate` in interface `java.sql.Statement`
Overrides:
  `executeUpdate` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeUpdate

    public int executeUpdate​(java.lang.String sql,
                             java.lang.String[] columnNames)
                      throws java.sql.SQLException

Specified by:
  `executeUpdate` in interface `java.sql.Statement`
Overrides:
  `executeUpdate` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### execute

    public boolean execute​(java.lang.String sql,
                           int autoGeneratedKeys)
                    throws java.sql.SQLException

Specified by:
  `execute` in interface `java.sql.Statement`
Overrides:
  `execute` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### execute

    public boolean execute​(java.lang.String sql,
                           int[] columnIndexes)
                    throws java.sql.SQLException

Specified by:
  `execute` in interface `java.sql.Statement`
Overrides:
  `execute` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### execute

    public boolean execute​(java.lang.String sql,
                           java.lang.String[] columnNames)
                    throws java.sql.SQLException

Specified by:
  `execute` in interface `java.sql.Statement`
Overrides:
  `execute` in class `FBStatement`
Throws:
  `java.sql.SQLException`

#### executeLargeUpdate

    public long executeLargeUpdate()
                            throws java.sql.SQLException

Specified by:
  `executeLargeUpdate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`