public abstract class AbstractPreparedStatement extends AbstractStatement implements FirebirdPreparedStatement
PreparedStatement
interface. This class
contains all methods from the JDBC 3.0 specification.AbstractStatement.StatementResult
Modifier and Type | Field and Description |
---|---|
protected java.util.List |
batchList |
protected boolean[] |
isParamSet |
completed, connection, currentStatementResult, fetchSize, firstWarning, fixedStmt, gdsHelper, maxRows, statementListener
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
Modifier | Constructor and Description |
---|---|
protected |
AbstractPreparedStatement(org.firebirdsql.gds.impl.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(org.firebirdsql.gds.impl.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.
|
Modifier and Type | Method and Description |
---|---|
void |
addBatch()
Adds a set of parameters to this
PreparedStatement
object's batch of commands. |
void |
addBatch(java.lang.String sql)
Adds an SQL command to the current batch of commmands for this
Statement object. |
void |
clearBatch()
Makes the set of commands in the current batch empty.
|
void |
clearParameters()
Clears the current parameter values immediately.
|
void |
completeStatement(CompletionReason reason) |
boolean |
equals(java.lang.Object other) |
boolean |
execute()
Executes any kind of SQL statement.
|
boolean |
execute(java.lang.String sql)
Executes an SQL statement that may return multiple results.
|
boolean |
execute(java.lang.String sql,
int autoGeneratedKeys)
Executes the given SQL statement, which may return multiple results,
and signals the driver that any
auto-generated keys should be made available
for retrieval.
|
boolean |
execute(java.lang.String sql,
int[] columnIndexes)
Executes the given SQL statement, which may return multiple results,
and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
boolean |
execute(java.lang.String sql,
java.lang.String[] columnNames)
Executes the given SQL statement, which may return multiple results,
and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
int[] |
executeBatch()
Submits a batch of commands to the database for execution and if all
commands execute successfully, returns an array of update counts.
|
java.sql.ResultSet |
executeQuery()
Executes the SQL query in this
PreparedStatement object
and returns the result set generated by the query. |
java.sql.ResultSet |
executeQuery(java.lang.String sql)
Executes an SQL statement that returns a single
ResultSet object. |
int |
executeUpdate()
Executes the SQL INSERT, UPDATE or DELETE statement in this
PreparedStatement object. |
int |
executeUpdate(java.lang.String sql)
Executes an SQL
INSERT , UPDATE or
DELETE statement. |
int |
executeUpdate(java.lang.String sql,
int autoGeneratedKeys)
Executes the given SQL statement and signals the driver with the
given flag about whether the
auto-generated keys produced by this
Statement object
should be made available for retrieval. |
int |
executeUpdate(java.lang.String sql,
int[] columnIndex)
Executes the given SQL statement and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
int |
executeUpdate(java.lang.String sql,
java.lang.String[] columnNames)
Executes the given SQL statement and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
java.lang.String |
getExecutionPlan()
Get the execution plan of this PreparedStatement
|
protected org.firebirdsql.jdbc.field.FBField |
getField(int columnIndex)
Factory method for the field access objects
|
FirebirdParameterMetaData |
getFirebirdParameterMetaData() |
java.sql.ResultSetMetaData |
getMetaData()
Gets the number, types and properties of a
ResultSet
object's columns. |
java.sql.ParameterMetaData |
getParameterMetaData() |
int |
getStatementType()
Get the statement type of this PreparedStatement.
|
protected XSQLVAR |
getXsqlvar(int columnIndex)
Returns the XSQLVAR structure for the specified column.
|
protected boolean |
internalExecute(boolean sendOutParams)
Execute this statement.
|
protected void |
notifyStatementCompleted(boolean success) |
protected void |
prepareFixedStatement(java.lang.String sql,
boolean describeBind)
Prepare fixed statement and initialize parameters.
|
void |
setArray(int i,
java.sql.Array x)
Sets the designated parameter to the given
Array object. |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x) |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x,
int length)
Sets the designated parameter to the given input stream, which will have
the specified number of bytes.
|
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x,
long length) |
void |
setBigDecimal(int parameterIndex,
java.math.BigDecimal x)
Sets the designated parameter to the given BigDecimal
|
void |
setBinaryStream(int parameterIndex,
java.io.InputStream x) |
void |
setBinaryStream(int parameterIndex,
java.io.InputStream inputStream,
int length)
Sets the designated parameter to the given input stream, which will have
the specified number of bytes.
|
void |
setBinaryStream(int parameterIndex,
java.io.InputStream x,
long length) |
void |
setBlob(int parameterIndex,
java.sql.Blob blob)
Sets the designated parameter to the given
Blob object. |
void |
setBlob(int parameterIndex,
java.io.InputStream inputStream) |
void |
setBlob(int parameterIndex,
java.io.InputStream inputStream,
long length) |
void |
setBoolean(int parameterIndex,
boolean x)
Sets the designated parameter to the given boolean value.
|
void |
setByte(int parameterIndex,
byte x)
Sets the designated parameter to the given byte value.
|
void |
setBytes(int parameterIndex,
byte[] x)
Set the designated parameter to the given byte array.
|
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader) |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader,
int length)
Sets the designated parameter to the given
Reader object,
which is the given number of characters long. |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setClob(int parameterIndex,
java.sql.Clob clob)
Sets the designated parameter to the given
Clob object. |
void |
setClob(int parameterIndex,
java.io.Reader reader) |
void |
setClob(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setDate(int parameterIndex,
java.sql.Date x)
Sets the designated parameter to the given date value.
|
void |
setDate(int parameterIndex,
java.sql.Date x,
java.util.Calendar cal)
Sets the designated parameter to the given
java.sql.Date
value, using the given Calendar object. |
void |
setDouble(int parameterIndex,
double x)
Sets the designated parameter to the given double value.
|
void |
setFloat(int parameterIndex,
float x)
Sets the designated parameter to the given floate value.
|
void |
setInt(int parameterIndex,
int x)
Sets the designated parameter to the given int value.
|
void |
setLong(int parameterIndex,
long x)
Sets the designated parameter to the given long value.
|
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 |
setNString(int parameterIndex,
java.lang.String value) |
void |
setNull(int parameterIndex,
int sqlType)
Sets the designated parameter to SQL
NULL . |
void |
setNull(int parameterIndex,
int sqlType,
java.lang.String typeName)
Sets the designated parameter to SQL
NULL . |
void |
setObject(int parameterIndex,
java.lang.Object x)
Sets the value of the designated parameter with the given object.
|
void |
setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType)
Sets the value of the designated parameter with the given object.
|
void |
setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType,
int scale)
Sets the value of the designated parameter with the given object.
|
void |
setRef(int i,
java.sql.Ref x)
Sets the designated parameter to the given
REF(<structured-type>) value. |
void |
setShort(int parameterIndex,
short x)
Sets the designated parameter to the given short value.
|
void |
setString(int parameterIndex,
java.lang.String x)
Sets the designated parameter to the given String value.
|
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)
Sets the designated parameter to the given Time value.
|
void |
setTime(int parameterIndex,
java.sql.Time x,
java.util.Calendar cal)
Sets the designated parameter to the given
java.sql.Time
value, using the given Calendar object. |
void |
setTimestamp(int parameterIndex,
java.sql.Timestamp x)
Sets the designated parameter to the given Timestamp value.
|
void |
setTimestamp(int parameterIndex,
java.sql.Timestamp x,
java.util.Calendar cal)
Sets the designated parameter to the given
java.sql.Timestamp value, using the given
Calendar object. |
void |
setUnicodeStream(int parameterIndex,
java.io.InputStream x,
int length)
Deprecated.
I really have no idea if there is anything else we should be doing here
|
void |
setURL(int parameterIndex,
java.net.URL url) |
addWarning, cancel, checkValidity, clearWarnings, close, closeOnCompletion, completeStatement, finalize, forgetResultSet, getConnection, getCurrentResultSet, getDeletedRowsCount, getFetchDirection, getFetchSize, getGeneratedKeys, getInsertedRowsCount, getLastExecutionPlan, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getSynchronizationObject, getUpdateCount, getUpdateCountInternal, getUpdatedRowsCount, getWarnings, hashCode, hasOpenResultSet, internalExecute, isClosed, isCloseOnCompletion, isExecuteProcedureStatement, isPoolable, isValid, isWrapperFor, nativeSQL, notifyStatementCompleted, notifyStatementStarted, notifyStatementStarted, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, toArray, unwrap
clone, getClass, notify, notifyAll, toString, wait, wait, wait
getCurrentResultSet, getDeletedRowsCount, getInsertedRowsCount, getLastExecutionPlan, getUpdatedRowsCount, hasOpenResultSet, isClosed, isValid
executeLargeUpdate, setNClob, setObject, setObject, setRowId, setSQLXML
cancel, clearWarnings, close, closeOnCompletion, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
protected boolean[] isParamSet
protected final java.util.List batchList
protected AbstractPreparedStatement(org.firebirdsql.gds.impl.GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener) throws java.sql.SQLException
AbstractCallableStatement
since the statement is prepared right before the execution.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.java.sql.SQLException
- if something went wrong.protected AbstractPreparedStatement(org.firebirdsql.gds.impl.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
c
- connection to be used.sql
- SQL statement to prepare.rsType
- type of result set to create.rsConcurrency
- result set concurrency.java.sql.SQLException
- if something went wrong.public void completeStatement(CompletionReason reason) throws java.sql.SQLException
completeStatement
in class AbstractStatement
java.sql.SQLException
protected void notifyStatementCompleted(boolean success) throws java.sql.SQLException
notifyStatementCompleted
in class AbstractStatement
java.sql.SQLException
public java.sql.ResultSet executeQuery() throws java.sql.SQLException
PreparedStatement
object
and returns the result set generated by the query.executeQuery
in interface java.sql.PreparedStatement
ResultSet
object that contains the data produced
by the query; never null
java.sql.SQLException
- if a database access error occurspublic int executeUpdate() throws java.sql.SQLException
PreparedStatement
object. In addition, SQL statements that
return nothing, such as SQL DDL statements, can be executed.executeUpdate
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occurspublic FirebirdParameterMetaData getFirebirdParameterMetaData() throws java.sql.SQLException
java.sql.SQLException
public void setNull(int parameterIndex, int sqlType) throws java.sql.SQLException
NULL
.
Note: You must specify the parameter's SQL type.
setNull
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...sqlType
- the SQL type code defined in java.sql.Types
java.sql.SQLException
- if a database access error occurspublic void setBinaryStream(int parameterIndex, java.io.InputStream inputStream, int length) throws java.sql.SQLException
Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
setBinaryStream
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...inputStream
- the Java input streamlength
- the number of bytes in the streamjava.sql.SQLException
- if a database access error occurspublic void setBinaryStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBinaryStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBytes(int parameterIndex, byte[] x) throws java.sql.SQLException
setBytes
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The byte array to be setjava.sql.SQLException
- if a database access occurspublic void setBoolean(int parameterIndex, boolean x) throws java.sql.SQLException
setBoolean
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The boolean value to be setjava.sql.SQLException
- if a database access occurspublic void setByte(int parameterIndex, byte x) throws java.sql.SQLException
setByte
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The byte value to be setjava.sql.SQLException
- if a database access occurspublic void setDate(int parameterIndex, java.sql.Date x) throws java.sql.SQLException
setDate
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The date value to be setjava.sql.SQLException
- if a database access occurspublic void setDouble(int parameterIndex, double x) throws java.sql.SQLException
setDouble
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The double value to be setjava.sql.SQLException
- if a database access occurspublic void setFloat(int parameterIndex, float x) throws java.sql.SQLException
setFloat
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The float value to be setjava.sql.SQLException
- if a database access occurspublic void setInt(int parameterIndex, int x) throws java.sql.SQLException
setInt
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The int value to be setjava.sql.SQLException
- if a database access occurspublic void setLong(int parameterIndex, long x) throws java.sql.SQLException
setLong
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The long value to be setjava.sql.SQLException
- if a database access occurspublic void setObject(int parameterIndex, java.lang.Object x) throws java.sql.SQLException
setObject
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the parameter valuejava.sql.SQLException
- if a database access error occurspublic void setShort(int parameterIndex, short x) throws java.sql.SQLException
setShort
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The short value to be setjava.sql.SQLException
- if a database access occurspublic void setString(int parameterIndex, java.lang.String x) throws java.sql.SQLException
setString
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The String value to be setjava.sql.SQLException
- if a database access occurspublic void setStringForced(int parameterIndex, java.lang.String x) throws java.sql.SQLException
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The String value to be setjava.sql.SQLException
- if a database access occurspublic void setTime(int parameterIndex, java.sql.Time x) throws java.sql.SQLException
setTime
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The Time value to be setjava.sql.SQLException
- if a database access occurspublic void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws java.sql.SQLException
setTimestamp
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The Timestamp value to be setjava.sql.SQLException
- if a database access occurspublic void setBigDecimal(int parameterIndex, java.math.BigDecimal x) throws java.sql.SQLException
setBigDecimal
in interface java.sql.PreparedStatement
parameterIndex
- The first parameter is 1, second is 2, ...x
- The BigDecimal to be set as a parameterjava.sql.SQLException
- if a database access error occursprotected XSQLVAR getXsqlvar(int columnIndex)
protected org.firebirdsql.jdbc.field.FBField getField(int columnIndex) throws java.sql.SQLException
java.sql.SQLException
public void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
LONGVARCHAR
parameter, it may be more practical to send
it via a java.io.InputStream
. Data will be read from the
stream as needed until end-of-file is reached. The JDBC driver will do
any necessary conversion from ASCII to the database char format.
Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
setAsciiStream
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the Java input stream that contains the ASCII parameter valuelength
- the number of bytes in the streamjava.sql.SQLException
- if a database access error occurspublic void setAsciiStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setAsciiStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
LONGVARCHAR
parameter, it may be more practical to
send it via a java.io.InputStream
object. The data will be
read from the stream as needed until end-of-file is reached. The JDBC
driver will do any necessary conversion from UNICODE to the database char
format. The byte format of the Unicode stream must be Java UTF-8, as
defined in the Java Virtual Machine Specification.
Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
setUnicodeStream
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the UNICODE parameter
valuelength
- the number of bytes in the streamjava.sql.SQLException
- if a database access error occurspublic void setURL(int parameterIndex, java.net.URL url) throws java.sql.SQLException
setURL
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNCharacterStream(int parameterIndex, java.io.Reader value, long length) throws java.sql.SQLException
setNCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNCharacterStream(int parameterIndex, java.io.Reader value) throws java.sql.SQLException
setNCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNString(int parameterIndex, java.lang.String value) throws java.sql.SQLException
setNString
in interface java.sql.PreparedStatement
java.sql.SQLException
public void clearParameters() throws java.sql.SQLException
In general, parameter values remain in force for repeated use of a
statement. Setting a parameter value automatically clears its previous
value. However, in some cases it is useful to immediately release the
resources used by the current parameter values; this can be done by
calling the method clearParameters
.
clearParameters
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occurspublic void setObject(int parameterIndex, java.lang.Object x, int targetSqlType, int scale) throws java.sql.SQLException
Sets the value of the designated parameter with the given object. The
second argument must be an object type; for integral values, the
java.lang
equivalent objects should be used.
The given Java object will be converted to the given targetSqlType before
being sent to the database.
If the object has a custom mapping (is of a class implementing the
interface SQLData
), the JDBC driver should call the
method SQLData.writeSQL
to write it to the SQL data
stream. If, on the other hand, the object is of a class implementing Ref,
Blob, Clob, Struct, or Array, the driver should pass it to the database
as a value of the corresponding SQL type.
Note that this method may be used to pass datatabase- specific abstract data types.
setObject
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter valuetargetSqlType
- the SQL type (as defined in java.sql.Types) to be sent to the
database. The scale argument may further qualify this type.scale
- for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types,
this is the number of digits after the decimal point. For all
other types, this value will be ignored.java.sql.SQLException
- if a database access error occursTypes
public void setObject(int parameterIndex, java.lang.Object x, int targetSqlType) throws java.sql.SQLException
setObject
above, except that it
assumes a scale of zero.setObject
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter valuetargetSqlType
- the SQL type (as defined in java.sql.Types) to be sent to the
databasejava.sql.SQLException
- if a database access error occurspublic boolean execute() throws java.sql.SQLException
execute
method handles these complex
statements as well as the simpler form of statements handled by the
methods executeQuery
and executeUpdate
.execute
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occursStatement.execute(java.lang.String)
protected boolean internalExecute(boolean sendOutParams) throws java.sql.SQLException
sendOutParams
- true
if the statement has more result sets.java.sql.SQLException
public void addBatch() throws java.sql.SQLException
PreparedStatement
object's batch of commands.addBatch
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occursStatement.addBatch(java.lang.String)
,
What Is in the JDBC 2.0 API
public void clearBatch() throws java.sql.SQLException
clearBatch
in interface java.sql.Statement
clearBatch
in class AbstractStatement
java.sql.SQLException
- if a database access error occurs or the driver does not
support batch statementspublic int[] executeBatch() throws java.sql.SQLException
int
elements of the array that is returned are ordered to
correspond to the commands in the batch, which are ordered according to
the order in which they were added to the batch. The elements in the
array returned by the method executeBatch
may be one of
the following:
-2
-- indicates that the command was
processed successfully but that the number of rows affected is unknown
If one of the commands in a batch update fails to execute properly, this
method throws a BatchUpdateException
, and a JDBC driver
may or may not continue to process the remaining commands in the batch.
However, the driver's behavior must be consistent with a particular DBMS,
either always continuing to process commands or never continuing to
process commands. If the driver continues processing after a failure, the
array returned by the method
BatchUpdateException.getUpdateCounts
will contain as many
elements as there are commands in the batch, and at least one of the
elements will be the following:
-3
-- indicates that the command failed to
execute successfully and occurs only if a driver continues to process
commands after a command fails
A driver is not required to implement this method. The possible
implementations and return values have been modified in the Java 2 SDK,
Standard Edition, version 1.3 to accommodate the option of continuing to
proccess commands in a batch update after a
BatchUpdateException
obejct has been thrown.
executeBatch
in interface java.sql.Statement
executeBatch
in class AbstractStatement
java.sql.SQLException
- if a database access error occurs or the driver does not
support batch statements. Throws
BatchUpdateException
(a subclass of
SQLException
) if one of the commands sent
to the database fails to execute properly or attempts to
return a result set.public void setCharacterStream(int parameterIndex, java.io.Reader reader, int length) throws java.sql.SQLException
Reader
object,
which is the given number of characters long. When a very large UNICODE
value is input to a LONGVARCHAR
parameter, it may be more
practical to send it via a java.io.Reader
object. The data
will be read from the stream as needed until end-of-file is reached. The
JDBC driver will do any necessary conversion from UNICODE to the database
char format.
Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
setCharacterStream
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...reader
- the java reader which contains the UNICODE datalength
- the number of characters in the streamjava.sql.SQLException
- if a database access error occurspublic void setCharacterStream(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setRef(int i, java.sql.Ref x) throws java.sql.SQLException
REF(<structured-type>)
value.setRef
in interface java.sql.PreparedStatement
i
- the first parameter is 1, the second is 2, ...x
- an SQL REF
valuejava.sql.SQLException
- if a database access error occurspublic void setBlob(int parameterIndex, java.sql.Blob blob) throws java.sql.SQLException
Blob
object.setBlob
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...blob
- a Blob
object that maps an SQL
BLOB
valuejava.sql.SQLException
- if a database access error occurspublic void setBlob(int parameterIndex, java.io.InputStream inputStream, long length) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBlob(int parameterIndex, java.io.InputStream inputStream) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.sql.Clob clob) throws java.sql.SQLException
Clob
object.setClob
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...clob
- a Clob
object that maps an SQL
CLOB
valuejava.sql.SQLException
- if a database access error occurspublic void setClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setArray(int i, java.sql.Array x) throws java.sql.SQLException
Array
object.
Sets an Array parameter.setArray
in interface java.sql.PreparedStatement
i
- the first parameter is 1, the second is 2, ...x
- an Array
object that maps an SQL
ARRAY
valuejava.sql.SQLException
- if a database access error occurspublic java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
ResultSet
object's columns.getMetaData
in interface java.sql.PreparedStatement
ResultSet
object's columnsjava.sql.SQLException
- if a database access error occurspublic void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal) throws java.sql.SQLException
java.sql.Date
value, using the given Calendar
object. The driver uses
the Calendar
object to construct an SQL DATE
value, which the driver then sends to the database. With a a
Calendar
object, the driver can calculate the date taking
into account a custom timezone. If no Calendar
object is
specified, the driver uses the default timezone, which is that of the
virtual machine running the application.setDate
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the datejava.sql.SQLException
- if a database access error occurspublic void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal) throws java.sql.SQLException
java.sql.Time
value, using the given Calendar
object. The driver uses
the Calendar
object to construct an SQL TIME
value, which the driver then sends to the database. With a a
Calendar
object, the driver can calculate the time taking
into account a custom timezone. If no Calendar
object is
specified, the driver uses the default timezone, which is that of the
virtual machine running the application.setTime
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the timejava.sql.SQLException
- if a database access error occurspublic void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal) throws java.sql.SQLException
java.sql.Timestamp
value, using the given
Calendar
object. The driver uses the Calendar
object to construct an SQL TIMESTAMP
value, which the
driver then sends to the database. With a a Calendar
object, the driver can calculate the timestamp taking into account a
custom timezone. If no Calendar
object is specified, the
driver uses the default timezone, which is that of the virtual machine
running the application.setTimestamp
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the timestampjava.sql.SQLException
- if a database access error occurspublic void setNull(int parameterIndex, int sqlType, java.lang.String typeName) throws java.sql.SQLException
NULL
. This version
of the method setNull
should be used for user-defined
types and REF type parameters. Examples of user-defined types include:
STRUCT, DISTINCT, JAVA_OBJECT, and named array types.
Note: To be portable, applications must give the SQL type code and the fully-qualified SQL type name when specifying a NULL user-defined or REF parameter. In the case of a user-defined type the name is the type name of the parameter itself. For a REF parameter, the name is the type name of the referenced type. If a JDBC driver does not need the type code or type name information, it may ignore it. Although it is intended for user-defined and Ref parameters, this method may be used to set a null parameter of any JDBC type. If the parameter does not have a user-defined or REF type, the given typeName is ignored.
setNull
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...sqlType
- a value from java.sql.Types
typeName
- the fully-qualified name of an SQL user-defined type; ignored
if the parameter is not a user-defined type or REFjava.sql.SQLException
- if a database access error occursprotected void prepareFixedStatement(java.lang.String sql, boolean describeBind) throws GDSException, java.sql.SQLException
prepareFixedStatement
in class AbstractStatement
GDSException
java.sql.SQLException
public java.lang.String getExecutionPlan() throws FBSQLException
getExecutionPlan
in interface FirebirdPreparedStatement
FBSQLException
public int getStatementType() throws FBSQLException
TYPE_*
constant
values.getStatementType
in interface FirebirdPreparedStatement
FBSQLException
public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException
getParameterMetaData
in interface java.sql.PreparedStatement
java.sql.SQLException
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException
AbstractStatement
ResultSet
object.executeQuery
in interface java.sql.Statement
executeQuery
in class AbstractStatement
sql
- typically this is a static SQL SELECT
statementResultSet
object that contains the data produced by the
given query; never null
java.sql.SQLException
- if a database access error occurspublic int executeUpdate(java.lang.String sql) throws java.sql.SQLException
AbstractStatement
INSERT
, UPDATE
or
DELETE
statement. In addition,
SQL statements that return nothing, such as SQL DDL statements,
can be executed.executeUpdate
in interface java.sql.Statement
executeUpdate
in class AbstractStatement
sql
- an SQL INSERT
, UPDATE
or
DELETE
statement or an SQL statement that returns nothingINSERT
, UPDATE
or DELETE
statements, or 0 for SQL statements that return nothingjava.sql.SQLException
- if a database access error occurspublic boolean execute(java.lang.String sql) throws java.sql.SQLException
AbstractStatement
execute
,
getMoreResults
, getResultSet
,
and getUpdateCount
let you navigate through multiple results.
The execute
method executes an SQL statement and indicates the
form of the first result. You can then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).execute
in interface java.sql.Statement
execute
in class AbstractStatement
sql
- any SQL statementtrue
if the next result is a ResultSet
object;
false
if it is an update count or there are no more resultsjava.sql.SQLException
- if a database access error occursAbstractStatement.getResultSet()
,
AbstractStatement.getUpdateCount()
,
AbstractStatement.getMoreResults()
public void addBatch(java.lang.String sql) throws java.sql.SQLException
AbstractStatement
Statement
object. This method is optional.addBatch
in interface java.sql.Statement
addBatch
in class AbstractStatement
sql
- typically this is a static SQL INSERT
or
UPDATE
statementjava.sql.SQLException
- if a database access error occurs, or the
driver does not support batch statementspublic int executeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
AbstractStatement
Statement
object
should be made available for retrieval. The driver will ignore the
flag if the SQL statement
is not an INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).executeUpdate
in interface java.sql.Statement
executeUpdate
in class AbstractStatement
sql
- an SQL Data Manipulation Language (DML) statement, such as INSERT
, UPDATE
or
DELETE
; or an SQL statement that returns nothing,
such as a DDL statement.autoGeneratedKeys
- a flag indicating whether auto-generated keys
should be made available for retrieval;
one of the following constants:
Statement.RETURN_GENERATED_KEYS
Statement.NO_GENERATED_KEYS
java.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
, the given
SQL statement returns a ResultSet
object, or
the given constant is not one of those allowedjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this method with a constant of Statement.RETURN_GENERATED_KEYSpublic int executeUpdate(java.lang.String sql, int[] columnIndex) throws java.sql.SQLException
AbstractStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).executeUpdate
in interface java.sql.Statement
executeUpdate
in class AbstractStatement
sql
- an SQL Data Manipulation Language (DML) statement, such as INSERT
, UPDATE
or
DELETE
; or an SQL statement that returns nothing,
such as a DDL statement.columnIndex
- an array of column indexes indicating the columns
that should be returned from the inserted rowjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
, the SQL
statement returns a ResultSet
object, or the
second argument supplied to this method is not an int
array
whose elements are valid column indexesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodpublic int executeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
AbstractStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).executeUpdate
in interface java.sql.Statement
executeUpdate
in class AbstractStatement
sql
- an SQL Data Manipulation Language (DML) statement, such as INSERT
, UPDATE
or
DELETE
; or an SQL statement that returns nothing,
such as a DDL statement.columnNames
- an array of the names of the columns that should be
returned from the inserted rowINSERT
, UPDATE
,
or DELETE
statements, or 0 for SQL statements
that return nothingjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
, the SQL
statement returns a ResultSet
object, or the
second argument supplied to this method is not a String
array
whose elements are valid column namesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodpublic boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
AbstractStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).
In some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.
The execute
method executes an SQL statement and indicates the
form of the first result. You must then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).
execute
in interface java.sql.Statement
execute
in class AbstractStatement
sql
- any SQL statementautoGeneratedKeys
- a constant indicating whether auto-generated
keys should be made available for retrieval using the method
getGeneratedKeys
; one of the following constants:
Statement.RETURN_GENERATED_KEYS
or
Statement.NO_GENERATED_KEYS
true
if the first result is a ResultSet
object; false
if it is an update count or there are
no resultsjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
or the second
parameter supplied to this method is not
Statement.RETURN_GENERATED_KEYS
or
Statement.NO_GENERATED_KEYS
.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this method with a constant of Statement.RETURN_GENERATED_KEYSAbstractStatement.getResultSet()
,
AbstractStatement.getUpdateCount()
,
AbstractStatement.getMoreResults()
,
AbstractStatement.getGeneratedKeys()
public boolean execute(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
AbstractStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).
Under some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.
The execute
method executes an SQL statement and indicates the
form of the first result. You must then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).
execute
in interface java.sql.Statement
execute
in class AbstractStatement
sql
- any SQL statementcolumnIndexes
- an array of the indexes of the columns in the
inserted row that should be made available for retrieval by a
call to the method getGeneratedKeys
true
if the first result is a ResultSet
object; false
if it is an update count or there
are no resultsjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
or the
elements in the int
array passed to this method
are not valid column indexesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodAbstractStatement.getResultSet()
,
AbstractStatement.getUpdateCount()
,
AbstractStatement.getMoreResults()
public boolean execute(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
AbstractStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).
In some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.
The execute
method executes an SQL statement and indicates the
form of the first result. You must then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).
execute
in interface java.sql.Statement
execute
in class AbstractStatement
sql
- any SQL statementcolumnNames
- an array of the names of the columns in the inserted
row that should be made available for retrieval by a call to the
method getGeneratedKeys
true
if the next result is a ResultSet
object; false
if it is an update count or there
are no more resultsjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
or the
elements of the String
array passed to this
method are not valid column namesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodAbstractStatement.getResultSet()
,
AbstractStatement.getUpdateCount()
,
AbstractStatement.getMoreResults()
,
AbstractStatement.getGeneratedKeys()
public boolean equals(java.lang.Object other)
equals
in class AbstractStatement
Copyright © 2001-2019 Jaybird (Firebird JDBC/JCA) team. All rights reserved.