Module org.firebirdsql.jaybird
Package org.firebirdsql.jdbc

# Class FBPreparedStatement

java.lang.Object
org.firebirdsql.jdbc.AbstractStatement
org.firebirdsql.jdbc.FBStatement
org.firebirdsql.jdbc.FBPreparedStatement

All Implemented Interfaces:
  `AutoCloseable`, `PreparedStatement`, `Statement`, `Wrapper`, `FirebirdPreparedStatement`, `FirebirdStatement`

Direct Known Subclasses:
  `FBCallableStatement`

@InternalApi @NullMarked public class FBPreparedStatement extends FBStatement implements FirebirdPreparedStatement
Implementation of `PreparedStatement`.

This class is internal API of Jaybird. Future versions may radically change, move, or make inaccessible this type. For the public API, refer to the `PreparedStatement` and `FirebirdPreparedStatement` interfaces.

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
Modifier and Type
Field
Description
`static final String`
`METHOD_NOT_SUPPORTED`

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

`currentStatementResult, fbStatement, gdsHelper, isSingletonResult, specialResult, statementListener`

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

`connection`

### 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_SAVEPOINT, 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
Modifier
Constructor
Description
`protected`
`FBPreparedStatement(FBConnection connection, String sql, ResultSetBehavior rsBehavior, FBObjectListener.StatementListener statementListener, @Nullable FBObjectListener.BlobListener blobListener, boolean metaDataQuery, boolean standaloneStatement, boolean generatedKeys)`
Create instance of this class and prepare SQL statement.
`protected`
`FBPreparedStatement(FBConnection connection, ResultSetBehavior rsBehavior, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener)`
Create instance of this class for the specified result set type and concurrency.

## Method Summary

Modifier and Type
Method
Description
`void`
`addBatch()`
`void`
`addBatch(String sql)`
`void`
`clearBatch()`
`void`
`clearParameters()`
`void`
`close()`
`void`
`completeStatement(CompletionReason reason)`
Completes this statement with `reason`.
`boolean`
`execute()`
`boolean`
`execute(String sql)`
`boolean`
`execute(String sql, int autoGeneratedKeys)`
`boolean`
`execute(String sql, int[] columnIndexes)`
`boolean`
`execute(String sql, String[] columnNames)`
`protected List<Long>`
`executeBatchInternal()`
`long`
`executeLargeUpdate()`
`ResultSet`
`executeQuery()`
`ResultSet`
`executeQuery(String sql)`
`int`
`executeUpdate()`
`int`
`executeUpdate(String sql)`
`int`
`executeUpdate(String sql, int autoGeneratedKeys)`
`int`
`executeUpdate(String sql, int[] columnIndex)`
`int`
`executeUpdate(String sql, String[] columnNames)`
`protected FBField`
`getField(int columnIndex)`
Factory method for the field access objects
`FirebirdParameterMetaData`
`getFirebirdParameterMetaData()`
`@Nullable ResultSetMetaData`
`getMetaData()`
`protected FieldDescriptor`
`getParameterDescriptor(int columnIndex)`
Returns the `FieldDescriptor` of the specified parameter.
`ParameterMetaData`
`getParameterMetaData()`
`protected boolean`
`internalExecute(boolean sendOutParams)`
Execute this statement.
`protected boolean`
`isGeneratedKeyQuery()`
`protected void`
`notifyStatementCompleted(boolean success)`
Notifies statement completion.
`protected void`
`prepareFixedStatement(String sql)`
Prepare fixed statement and initialize parameters.
`void`
`setArray(int i, @Nullable Array x)`
`final void`
`setAsciiStream(int parameterIndex, @Nullable InputStream x)`
`final void`
`setAsciiStream(int parameterIndex, @Nullable InputStream x, int length)`
`final void`
`setAsciiStream(int parameterIndex, @Nullable InputStream x, long length)`
`void`
`setBigDecimal(int parameterIndex, @Nullable BigDecimal x)`
`void`
`setBinaryStream(int parameterIndex, @Nullable InputStream inputStream)`
`void`
`setBinaryStream(int parameterIndex, @Nullable InputStream inputStream, int length)`
`void`
`setBinaryStream(int parameterIndex, @Nullable InputStream inputStream, long length)`
`void`
`setBlob(int parameterIndex, @Nullable InputStream inputStream)`
`void`
`setBlob(int parameterIndex, @Nullable InputStream inputStream, long length)`
`void`
`setBlob(int parameterIndex, @Nullable Blob blob)`
`void`
`setBoolean(int parameterIndex, boolean x)`
`void`
`setByte(int parameterIndex, byte x)`
`void`
`setBytes(int parameterIndex, byte @Nullable [] x)`
`void`
`setCharacterStream(int parameterIndex, @Nullable Reader reader)`
`void`
`setCharacterStream(int parameterIndex, @Nullable Reader reader, int length)`
`void`
`setCharacterStream(int parameterIndex, @Nullable Reader reader, long length)`
`void`
`setClob(int parameterIndex, @Nullable Reader reader)`
`void`
`setClob(int parameterIndex, @Nullable Reader reader, long length)`
`void`
`setClob(int parameterIndex, @Nullable Clob clob)`
`void`
`setDate(int parameterIndex, @Nullable Date x)`
`void`
`setDate(int parameterIndex, @Nullable Date x, @Nullable 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, @Nullable Reader value)`
`void`
`setNCharacterStream(int parameterIndex, @Nullable Reader value, long length)`
`void`
`setNClob(int parameterIndex, @Nullable Reader reader)`
`void`
`setNClob(int parameterIndex, @Nullable Reader reader, long length)`
`void`
`setNClob(int parameterIndex, @Nullable NClob value)`
`void`
`setNString(int parameterIndex, @Nullable String value)`
`void`
`setNull(int parameterIndex, int sqlType)`
`void`
`setNull(int parameterIndex, int sqlType, String typeName)`
`void`
`setObject(int parameterIndex, @Nullable Object x)`
`void`
`setObject(int parameterIndex, @Nullable Object x, int targetSqlType)`
`void`
`setObject(int parameterIndex, @Nullable Object x, int targetSqlType, int scaleOrLength)`
`void`
`setObject(int parameterIndex, @Nullable Object x, SQLType targetSqlType)`
`void`
`setObject(int parameterIndex, @Nullable Object x, SQLType targetSqlType, int scaleOrLength)`
`void`
`setRef(int i, @Nullable Ref x)`
`void`
`setRowId(int parameterIndex, @Nullable RowId x)`
`void`
`setShort(int parameterIndex, short x)`
`void`
`setSQLXML(int parameterIndex, @Nullable SQLXML xmlObject)`
`void`
`setString(int parameterIndex, @Nullable String x)`
`void`
`setTime(int parameterIndex, @Nullable Time x)`
`void`
`setTime(int parameterIndex, @Nullable Time x, @Nullable Calendar cal)`
`void`
`setTimestamp(int parameterIndex, @Nullable Timestamp x)`
`void`
`setTimestamp(int parameterIndex, @Nullable Timestamp x, @Nullable Calendar cal)`
`void`
`setUnicodeStream(int parameterIndex, @Nullable InputStream x, int length)`
Deprecated.
`void`
`setURL(int parameterIndex, @Nullable URL url)`

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

`cancel, createBatchUpdateException, createBatchUpdateException, createSpecialResultSet, createStatementListener, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeBatch, executeImpl, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getCurrentResultSet, getDeletedRowsCount, getExecutionPlan, getExplainedExecutionPlan, getGeneratedKeys, getInsertedRowsCount, getLargeUpdateCount, getLargeUpdateCountMinZero, getMaxFieldSize, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSet, getStatementHandle, getStatementType, getUpdateCount, getUpdateCountMinZero, getUpdatedRowsCount, hasOpenResultSet, internalExecute, internalExecute, isSimpleIdentifier, isValid, isWrapperFor, nativeSQL, notifyStatementCompleted, notifyStatementStarted, notifyStatementStarted, setEscapeProcessing, setMaxFieldSize, setQueryTimeout, unwrap`

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

`addWarning, checkValidity, clearWarnings, closeOnCompletion, completeStatement, equals, fetchConfig, getConnection, getCursorName, getFetchDirection, getFetchSize, getLargeMaxRows, getLocalStatementId, getMaxRows, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getWarnings, hashCode, isClosed, isCloseOnCompletion, isPoolable, performCloseOnCompletion, resultSetBehavior, setCursorName, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxRows, setPoolable, withLock`

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

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

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

`getStatementType`

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

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

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

`cancel, clearWarnings, 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 Details

### METHOD_NOT_SUPPORTED

public static final String METHOD_NOT_SUPPORTED

See Also:
  - Constant Field Values

## Constructor Details

### FBPreparedStatement

protected FBPreparedStatement(FBConnection connection, ResultSetBehavior rsBehavior, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener) throws 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:
  `connection` - connection to be used
  `rsBehavior` - result set behavior
  `statementListener` - statement listener that will be notified about the statement start, close and completion
  `blobListener` - blob listener that will be notified about the statement start and completion
Throws:
  `SQLException` - if something went wrong.

### FBPreparedStatement

protected FBPreparedStatement(FBConnection connection, String sql, ResultSetBehavior rsBehavior, FBObjectListener.StatementListener statementListener, @Nullable FBObjectListener.BlobListener blobListener, boolean metaDataQuery, boolean standaloneStatement, boolean generatedKeys) throws SQLException
Create instance of this class and prepare SQL statement.

Parameters:
  `connection` - connection to be used
  `sql` - SQL statement to prepare
  `rsBehavior` - result set behavior
  `statementListener` - statement listener that will be notified about the statement start, close and completion
  `blobListener` - blob listener that will be notified about the statement start and completion
  `metaDataQuery` - `true` for a metadata query, `false` for a normal query
  `standaloneStatement` - `true` for a standalone statement (should only be used when `metaDataQuery == true`)
  `generatedKeys` - `true` if this statement produces a generated keys result set
Throws:
  `SQLException` - if something went wrong.

## Method Details

### completeStatement

public void completeStatement(CompletionReason reason) throws SQLException
Description copied from class: `AbstractStatement`
Completes this statement with `reason`.

On completion, any open result set will be closed, and possibly the statement itself may be closed.

Overrides:
  `completeStatement` in class `FBStatement`
Parameters:
  `reason` - completion reason
Throws:
  `SQLException` - for failures completing this statement

### notifyStatementCompleted

protected void notifyStatementCompleted(boolean success) throws SQLException
Description copied from class: `FBStatement`
Notifies statement completion.

Use of `success = false` should not be generally used for failing execution. The only difference between `true` and `false` is 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 in `FBPreparedStatement`.

Overrides:
  `notifyStatementCompleted` in class `FBStatement`
Parameters:
  `success` - `true` notify successful completion, `false` for unsuccessful completion
Throws:
  `SQLException` - exception from handling statement completion (e.g. commit or rollback in auto-commit)

### executeQuery

public ResultSet executeQuery() throws SQLException

Specified by:
  `executeQuery` in interface `PreparedStatement`
Throws:
  `SQLException`

### executeUpdate

public int executeUpdate() throws SQLException

Specified by:
  `executeUpdate` in interface `PreparedStatement`
Throws:
  `SQLException`

### close

public void close() throws SQLException
Description copied from class: `AbstractStatement`

Subclasses overriding this method are expected to call this method with `super.close()` at an appropriate point to mark it closed.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Statement`
Overrides:
  `close` in class `FBStatement`
Throws:
  `SQLException`

### getFirebirdParameterMetaData

public FirebirdParameterMetaData getFirebirdParameterMetaData() throws SQLException

Throws:
  `SQLException`

### setNull

public void setNull(int parameterIndex, int sqlType) throws SQLException

Specified by:
  `setNull` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBinaryStream

public void setBinaryStream(int parameterIndex, @Nullable InputStream inputStream, int length) throws SQLException

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBinaryStream

public void setBinaryStream(int parameterIndex, @Nullable InputStream inputStream, long length) throws SQLException

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBinaryStream

public void setBinaryStream(int parameterIndex, @Nullable InputStream inputStream) throws SQLException

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBytes

public void setBytes(int parameterIndex, byte @Nullable [] x) throws SQLException

Specified by:
  `setBytes` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBoolean

public void setBoolean(int parameterIndex, boolean x) throws SQLException

Specified by:
  `setBoolean` in interface `PreparedStatement`
Throws:
  `SQLException`

### setByte

public void setByte(int parameterIndex, byte x) throws SQLException

Specified by:
  `setByte` in interface `PreparedStatement`
Throws:
  `SQLException`

### setDate

public void setDate(int parameterIndex, @Nullable Date x) throws SQLException

Specified by:
  `setDate` in interface `PreparedStatement`
Throws:
  `SQLException`

### setDouble

public void setDouble(int parameterIndex, double x) throws SQLException

Specified by:
  `setDouble` in interface `PreparedStatement`
Throws:
  `SQLException`

### setFloat

public void setFloat(int parameterIndex, float x) throws SQLException

Specified by:
  `setFloat` in interface `PreparedStatement`
Throws:
  `SQLException`

### setInt

public void setInt(int parameterIndex, int x) throws SQLException

Specified by:
  `setInt` in interface `PreparedStatement`
Throws:
  `SQLException`

### setLong

public void setLong(int parameterIndex, long x) throws SQLException

Specified by:
  `setLong` in interface `PreparedStatement`
Throws:
  `SQLException`

### setObject

public void setObject(int parameterIndex, @Nullable Object x) throws SQLException

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

### setObject

public void setObject(int parameterIndex, @Nullable Object x, SQLType targetSqlType, int scaleOrLength) throws SQLException

Implementation note: behaves as `setObject(int, Object, int, int)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

### setObject

public void setObject(int parameterIndex, @Nullable Object x, SQLType targetSqlType) throws SQLException

Implementation note: behaves as `setObject(int, Object, int)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

### setShort

public void setShort(int parameterIndex, short x) throws SQLException

Specified by:
  `setShort` in interface `PreparedStatement`
Throws:
  `SQLException`

### setString

public void setString(int parameterIndex, @Nullable String x) throws SQLException

Specified by:
  `setString` in interface `PreparedStatement`
Throws:
  `SQLException`

### setTime

public void setTime(int parameterIndex, @Nullable Time x) throws SQLException

Specified by:
  `setTime` in interface `PreparedStatement`
Throws:
  `SQLException`

### setTimestamp

public void setTimestamp(int parameterIndex, @Nullable Timestamp x) throws SQLException

Specified by:
  `setTimestamp` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBigDecimal

public void setBigDecimal(int parameterIndex, @Nullable BigDecimal x) throws SQLException

Specified by:
  `setBigDecimal` in interface `PreparedStatement`
Throws:
  `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 SQLException
Factory method for the field access objects

Throws:
  `SQLException`

### setAsciiStream

public final void setAsciiStream(int parameterIndex, @Nullable InputStream x, int length) throws SQLException

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

Specified by:
  `setAsciiStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setAsciiStream

public final void setAsciiStream(int parameterIndex, @Nullable InputStream x, long length) throws SQLException

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

Specified by:
  `setAsciiStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setAsciiStream

public final void setAsciiStream(int parameterIndex, @Nullable InputStream x) throws SQLException

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

Specified by:
  `setAsciiStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setUnicodeStream

@Deprecated(since="1") public void setUnicodeStream(int parameterIndex, @Nullable InputStream x, int length) throws 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 `PreparedStatement`
Throws:
  `SQLFeatureNotSupportedException` - Always
  `SQLException`

### setURL

public void setURL(int parameterIndex, @Nullable URL url) throws SQLException

Jaybird does not support array types.

Specified by:
  `setURL` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNCharacterStream

public void setNCharacterStream(int parameterIndex, @Nullable Reader value, long length) throws SQLException

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

Specified by:
  `setNCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNCharacterStream

public void setNCharacterStream(int parameterIndex, @Nullable Reader value) throws SQLException

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

Specified by:
  `setNCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNClob

public void setNClob(int parameterIndex, @Nullable Reader reader, long length) throws SQLException

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

Specified by:
  `setNClob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNClob

public void setNClob(int parameterIndex, @Nullable Reader reader) throws SQLException

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

Specified by:
  `setNClob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNString

public void setNString(int parameterIndex, @Nullable String value) throws SQLException

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

Specified by:
  `setNString` in interface `PreparedStatement`
Throws:
  `SQLException`

### clearParameters

public void clearParameters() throws SQLException

Specified by:
  `clearParameters` in interface `PreparedStatement`
Throws:
  `SQLException`

### setObject

public void setObject(int parameterIndex, @Nullable Object x, int targetSqlType, int scaleOrLength) throws SQLException

Implementation note: ignores `scaleOrLength` and `targetSqlType` and works as `setObject(int, Object)`, `scaleOrLength` is not ignored if `x` is a `Reader` or `InputStream`.

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

### setObject

public void setObject(int parameterIndex, @Nullable Object x, int targetSqlType) throws SQLException

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

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

### execute

public boolean execute() throws SQLException

Specified by:
  `execute` in interface `PreparedStatement`
Throws:
  `SQLException`

### internalExecute

protected boolean internalExecute(boolean sendOutParams) throws 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:
  `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 SQLException

Specified by:
  `addBatch` in interface `PreparedStatement`
Throws:
  `SQLException`

### clearBatch

public void clearBatch() throws SQLException

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

### executeBatchInternal

protected List<Long> executeBatchInternal() throws SQLException

Overrides:
  `executeBatchInternal` in class `FBStatement`
Throws:
  `SQLException`

### setCharacterStream

public void setCharacterStream(int parameterIndex, @Nullable Reader reader, int length) throws SQLException

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setCharacterStream

public void setCharacterStream(int parameterIndex, @Nullable Reader reader, long length) throws SQLException

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setCharacterStream

public void setCharacterStream(int parameterIndex, @Nullable Reader reader) throws SQLException

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

### setRef

public void setRef(int i, @Nullable Ref x) throws SQLException

Jaybird does not support ref types.

Specified by:
  `setRef` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(int parameterIndex, @Nullable Blob blob) throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(int parameterIndex, @Nullable InputStream inputStream, long length) throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(int parameterIndex, @Nullable InputStream inputStream) throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setClob

public void setClob(int parameterIndex, @Nullable Clob clob) throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setClob

public void setClob(int parameterIndex, @Nullable Reader reader, long length) throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setClob

public void setClob(int parameterIndex, @Nullable Reader reader) throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setArray

public void setArray(int i, @Nullable Array x) throws SQLException

Jaybird does not support array types.

Specified by:
  `setArray` in interface `PreparedStatement`
Throws:
  `SQLException`

### getMetaData

public @Nullable ResultSetMetaData getMetaData() throws SQLException

Specified by:
  `getMetaData` in interface `PreparedStatement`
Throws:
  `SQLException`

### setDate

public void setDate(int parameterIndex, @Nullable Date x, @Nullable Calendar cal) throws SQLException

Specified by:
  `setDate` in interface `PreparedStatement`
Throws:
  `SQLException`

### setTime

public void setTime(int parameterIndex, @Nullable Time x, @Nullable Calendar cal) throws SQLException

Specified by:
  `setTime` in interface `PreparedStatement`
Throws:
  `SQLException`

### setTimestamp

public void setTimestamp(int parameterIndex, @Nullable Timestamp x, @Nullable Calendar cal) throws SQLException

Specified by:
  `setTimestamp` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNull

public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException

Specified by:
  `setNull` in interface `PreparedStatement`
Throws:
  `SQLException`

### prepareFixedStatement

protected void prepareFixedStatement(String sql) throws SQLException
Prepare fixed statement and initialize parameters.

Overrides:
  `prepareFixedStatement` in class `FBStatement`
Throws:
  `SQLException`

### getParameterMetaData

public ParameterMetaData getParameterMetaData() throws SQLException

Specified by:
  `getParameterMetaData` in interface `PreparedStatement`
Throws:
  `SQLException`

### setNClob

public void setNClob(int parameterIndex, @Nullable NClob value) throws SQLException

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

Specified by:
  `setNClob` in interface `PreparedStatement`
Throws:
  `SQLException`

### setRowId

public void setRowId(int parameterIndex, @Nullable RowId x) throws SQLException

Specified by:
  `setRowId` in interface `PreparedStatement`
Throws:
  `SQLException`

### setSQLXML

public void setSQLXML(int parameterIndex, @Nullable SQLXML xmlObject) throws SQLException

Jaybird does not support SQLXML.

Specified by:
  `setSQLXML` in interface `PreparedStatement`
Throws:
  `SQLException`

### executeQuery

public ResultSet executeQuery(String sql) throws SQLException

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

### executeUpdate

public int executeUpdate(String sql) throws SQLException

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

### execute

public boolean execute(String sql) throws SQLException

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

### addBatch

public void addBatch(String sql) throws SQLException

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

### executeUpdate

public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException

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

### executeUpdate

public int executeUpdate(String sql, int[] columnIndex) throws SQLException

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

### executeUpdate

public int executeUpdate(String sql, String[] columnNames) throws SQLException

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

### execute

public boolean execute(String sql, int autoGeneratedKeys) throws SQLException

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

### execute

public boolean execute(String sql, int[] columnIndexes) throws SQLException

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

### execute

public boolean execute(String sql, String[] columnNames) throws SQLException

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

### executeLargeUpdate

public long executeLargeUpdate() throws SQLException

Specified by:
  `executeLargeUpdate` in interface `PreparedStatement`
Throws:
  `SQLException`