|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.firebirdsql.jdbc.AbstractStatement
org.firebirdsql.jdbc.AbstractPreparedStatement
public abstract class AbstractPreparedStatement
Implementation of PreparedStatementinterface. This class
contains all methods from the JDBC 2.0 specification.
| Field Summary | |
|---|---|
protected boolean[] |
isParamSet
|
| Fields inherited from class org.firebirdsql.jdbc.AbstractStatement |
|---|
completed, fetchSize, firstWarning, fixedStmt, gdsHelper, hasMoreResults, isResultSet, maxRows, 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 org.firebirdsql.jdbc.FirebirdStatement |
|---|
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, KEEP_CURRENT_RESULT |
| Fields inherited from interface java.sql.Statement |
|---|
EXECUTE_FAILED, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO |
| Constructor Summary | |
|---|---|
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,
String sql,
int rsType,
int rsConcurrency,
int rsHoldability,
FBObjectListener.StatementListener statementListener,
FBObjectListener.BlobListener blobListener,
boolean metaDataQuery,
boolean someOtherFlag)
Create instance of this class and prepare SQL statement. |
| Method Summary | |
|---|---|
void |
addBatch()
Adds a set of parameters to this PreparedStatement
object's batch of commands. |
void |
clearBatch()
Makes the set of commands in the current batch empty. |
void |
clearParameters()
Clears the current parameter values immediately. |
void |
completeStatement()
|
boolean |
execute()
Executes any kind of SQL statement. |
int[] |
executeBatch()
Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts. |
ResultSet |
executeQuery()
Executes the SQL query in this PreparedStatement object
and returns the result set generated by the query. |
int |
executeUpdate()
Executes the SQL INSERT, UPDATE or DELETE statement in this PreparedStatement object. |
String |
getExecutionPlan()
Get the execution plan of this PreparedStatement |
protected FBField |
getField(int columnIndex)
Factory method for the field access objects |
ResultSetMetaData |
getMetaData()
Gets the number, types and properties of a ResultSet
object's columns. |
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(String sql,
boolean describeBind)
Prepare fixed statement and initialize parameters. |
void |
setArray(int i,
Array x)
Sets the designated parameter to the given Array object. |
void |
setAsciiStream(int parameterIndex,
InputStream x,
int length)
Sets the designated parameter to the given input stream, which will have the specified number of bytes. |
void |
setBigDecimal(int parameterIndex,
BigDecimal x)
Sets the designated parameter to the given BigDecimal |
void |
setBinaryStream(int parameterIndex,
InputStream inputStream,
int length)
Sets the designated parameter to the given input stream, which will have the specified number of bytes. |
void |
setBlob(int parameterIndex,
Blob blob)
Sets the designated parameter to the given Blob object. |
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,
Reader reader,
int length)
Sets the designated parameter to the given Reader object,
which is the given number of characters long. |
void |
setClob(int i,
Clob x)
Sets the designated parameter to the given Clob object. |
void |
setDate(int parameterIndex,
Date x)
Sets the designated parameter to the given date value. |
void |
setDate(int parameterIndex,
Date x,
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 |
setNull(int parameterIndex,
int sqlType)
Sets the designated parameter to SQL NULL. |
void |
setNull(int parameterIndex,
int sqlType,
String typeName)
Sets the designated parameter to SQL NULL. |
void |
setObject(int parameterIndex,
Object x)
Sets the value of the designated parameter with the given object. |
void |
setObject(int parameterIndex,
Object x,
int targetSqlType)
Sets the value of the designated parameter with the given object. |
void |
setObject(int parameterIndex,
Object x,
int targetSqlType,
int scale)
Sets the value of the designated parameter with the given object. |
void |
setRef(int i,
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,
String x)
Sets the designated parameter to the given String value. |
void |
setStringForced(int parameterIndex,
String x)
Sets the designated parameter to the given String value. |
void |
setTime(int parameterIndex,
Time x)
Sets the designated parameter to the given Time value. |
void |
setTime(int parameterIndex,
Time x,
Calendar cal)
Sets the designated parameter to the given java.sql.Time
value, using the given Calendar object. |
void |
setTimestamp(int parameterIndex,
Timestamp x)
Sets the designated parameter to the given Timestamp value. |
void |
setTimestamp(int parameterIndex,
Timestamp x,
Calendar cal)
Sets the designated parameter to the given java.sql.Timestamp value, using the given
Calendar object. |
void |
setUnicodeStream(int parameterIndex,
InputStream x,
int length)
Deprecated. I really have no idea if there is anything else we should be doing here |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.firebirdsql.jdbc.FirebirdStatement |
|---|
getCurrentResultSet, getDeletedRowsCount, getInsertedRowsCount, getLastExecutionPlan, getUpdatedRowsCount, hasOpenResultSet, isValid |
| Methods inherited from interface java.sql.PreparedStatement |
|---|
getParameterMetaData, setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setCharacterStream, setCharacterStream, setClob, setClob, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setRowId, setSQLXML, setURL |
| Methods inherited from interface java.sql.Wrapper |
|---|
isWrapperFor, unwrap |
| Field Detail |
|---|
protected boolean[] isParamSet
| Constructor Detail |
|---|
protected AbstractPreparedStatement(GDSHelper c,
int rsType,
int rsConcurrency,
int rsHoldability,
FBObjectListener.StatementListener statementListener,
FBObjectListener.BlobListener blobListener)
throws 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.
SQLException - if something went wrong.
protected AbstractPreparedStatement(GDSHelper c,
String sql,
int rsType,
int rsConcurrency,
int rsHoldability,
FBObjectListener.StatementListener statementListener,
FBObjectListener.BlobListener blobListener,
boolean metaDataQuery,
boolean someOtherFlag)
throws SQLException
c - connection to be used.sql - SQL statement to prepare.rsType - type of result set to create.rsConcurrency - result set concurrency.
SQLException - if something went wrong.| Method Detail |
|---|
public void completeStatement()
throws SQLException
completeStatement in class AbstractStatementSQLException
protected void notifyStatementCompleted(boolean success)
throws SQLException
notifyStatementCompleted in class AbstractStatementSQLException
public ResultSet executeQuery()
throws SQLException
PreparedStatement object
and returns the result set generated by the query.
executeQuery in interface PreparedStatementResultSet object that contains the data produced
by the query; never null
SQLException - if a database access error occurs
public int executeUpdate()
throws SQLException
PreparedStatement object. In addition, SQL statements that
return nothing, such as SQL DDL statements, can be executed.
executeUpdate in interface PreparedStatementSQLException - if a database access error occurs
public void setNull(int parameterIndex,
int sqlType)
throws SQLException
NULL.
Note: You must specify the parameter's SQL type.
setNull in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...sqlType - the SQL type code defined in java.sql.Types
SQLException - if a database access error occurs
public void setBinaryStream(int parameterIndex,
InputStream inputStream,
int length)
throws 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 PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...inputStream - the Java input streamlength - the number of bytes in the stream
SQLException - if a database access error occurs
public void setBytes(int parameterIndex,
byte[] x)
throws SQLException
setBytes in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The byte array to be set
SQLException - if a database access occurs
public void setBoolean(int parameterIndex,
boolean x)
throws SQLException
setBoolean in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The boolean value to be set
SQLException - if a database access occurs
public void setByte(int parameterIndex,
byte x)
throws SQLException
setByte in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The byte value to be set
SQLException - if a database access occurs
public void setDate(int parameterIndex,
Date x)
throws SQLException
setDate in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The date value to be set
SQLException - if a database access occurs
public void setDouble(int parameterIndex,
double x)
throws SQLException
setDouble in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The double value to be set
SQLException - if a database access occurs
public void setFloat(int parameterIndex,
float x)
throws SQLException
setFloat in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The float value to be set
SQLException - if a database access occurs
public void setInt(int parameterIndex,
int x)
throws SQLException
setInt in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The int value to be set
SQLException - if a database access occurs
public void setLong(int parameterIndex,
long x)
throws SQLException
setLong in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The long value to be set
SQLException - if a database access occurs
public void setObject(int parameterIndex,
Object x)
throws SQLException
setObject in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the object containing the parameter value
SQLException - if a database access error occurs
public void setShort(int parameterIndex,
short x)
throws SQLException
setShort in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The short value to be set
SQLException - if a database access occurs
public void setString(int parameterIndex,
String x)
throws SQLException
setString in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The String value to be set
SQLException - if a database access occurs
public void setStringForced(int parameterIndex,
String x)
throws SQLException
parameterIndex - the first parameter is 1, the second is 2, ...x - The String value to be set
SQLException - if a database access occurs
public void setTime(int parameterIndex,
Time x)
throws SQLException
setTime in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The Time value to be set
SQLException - if a database access occurs
public void setTimestamp(int parameterIndex,
Timestamp x)
throws SQLException
setTimestamp in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - The Timestamp value to be set
SQLException - if a database access occurs
public void setBigDecimal(int parameterIndex,
BigDecimal x)
throws SQLException
setBigDecimal in interface PreparedStatementparameterIndex - The first parameter is 1, second is 2, ...x - The BigDecimal to be set as a parameter
SQLException - if a database access error occursprotected XSQLVAR getXsqlvar(int columnIndex)
protected FBField getField(int columnIndex)
throws SQLException
SQLException
public void setAsciiStream(int parameterIndex,
InputStream x,
int length)
throws 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 PreparedStatementparameterIndex - 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 stream
SQLException - if a database access error occurs
public void setUnicodeStream(int parameterIndex,
InputStream x,
int length)
throws 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 PreparedStatementparameterIndex - 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 stream
SQLException - if a database access error occurs
public void clearParameters()
throws 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 PreparedStatementSQLException - if a database access error occurs
public void setObject(int parameterIndex,
Object x,
int targetSqlType,
int scale)
throws 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 PreparedStatementparameterIndex - 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.
SQLException - if a database access error occursTypes
public void setObject(int parameterIndex,
Object x,
int targetSqlType)
throws SQLException
setObject above, except that it
assumes a scale of zero.
setObject in interface PreparedStatementparameterIndex - 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
SQLException - if a database access error occurs
public boolean execute()
throws 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 PreparedStatementSQLException - if a database access error occursStatement.execute(java.lang.String)
protected boolean internalExecute(boolean sendOutParams)
throws SQLException
sendOutParams -
true if the statement has more result sets.
SQLException
public void addBatch()
throws SQLException
PreparedStatement
object's batch of commands.
addBatch in interface PreparedStatementSQLException - if a database access error occursStatement.addBatch(java.lang.String),
What Is in the JDBC 2.0 API
public void clearBatch()
throws SQLException
clearBatch in interface StatementclearBatch in class AbstractStatementSQLException - if a database access error occurs or the driver does not
support batch statements
public int[] executeBatch()
throws 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 StatementexecuteBatch in class AbstractStatementSQLException - 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,
Reader reader,
int length)
throws 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 PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...reader - the java reader which contains the UNICODE datalength - the number of characters in the stream
SQLException - if a database access error occurs
public void setRef(int i,
Ref x)
throws SQLException
REF(<structured-type>) value.
setRef in interface PreparedStatementi - the first parameter is 1, the second is 2, ...x - an SQL REF value
SQLException - if a database access error occurs
public void setBlob(int parameterIndex,
Blob blob)
throws SQLException
Blob object.
setBlob in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...blob - a Blob object that maps an SQL
BLOB value
SQLException - if a database access error occurs
public void setClob(int i,
Clob x)
throws SQLException
Clob object.
setClob in interface PreparedStatementi - the first parameter is 1, the second is 2, ...x - a Clob object that maps an SQL
CLOB value
SQLException - if a database access error occurs
public void setArray(int i,
Array x)
throws SQLException
Array object.
Sets an Array parameter.
setArray in interface PreparedStatementi - the first parameter is 1, the second is 2, ...x - an Array object that maps an SQL
ARRAY value
SQLException - if a database access error occurs
public ResultSetMetaData getMetaData()
throws SQLException
ResultSet
object's columns.
getMetaData in interface PreparedStatementResultSet object's columns
SQLException - if a database access error occurs
public void setDate(int parameterIndex,
Date x,
Calendar cal)
throws 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 PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valuecal - the Calendar object the driver will use to
construct the date
SQLException - if a database access error occurs
public void setTime(int parameterIndex,
Time x,
Calendar cal)
throws 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 PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valuecal - the Calendar object the driver will use to
construct the time
SQLException - if a database access error occurs
public void setTimestamp(int parameterIndex,
Timestamp x,
Calendar cal)
throws 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 PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valuecal - the Calendar object the driver will use to
construct the timestamp
SQLException - if a database access error occurs
public void setNull(int parameterIndex,
int sqlType,
String typeName)
throws 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 PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...sqlType - a value from java.sql.TypestypeName - the fully-qualified name of an SQL user-defined type; ignored
if the parameter is not a user-defined type or REF
SQLException - if a database access error occurs
protected void prepareFixedStatement(String sql,
boolean describeBind)
throws GDSException,
SQLException
prepareFixedStatement in class AbstractStatementGDSException
SQLException
public String getExecutionPlan()
throws FBSQLException
getExecutionPlan in interface FirebirdPreparedStatementFBSQLException
public int getStatementType()
throws FBSQLException
TYPE_* constant
values.
getStatementType in interface FirebirdPreparedStatementFBSQLException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||