public abstract class BasePreparedStatement extends Statement implements PreparedStatement
| Modifier and Type | Field and Description |
|---|---|
protected List<Parameters> |
batchParameters
batching parameters
|
protected boolean |
canCachePrepStmts
Can cache PREPARE result (and reused them) *
|
protected Parameters |
parameters
parameters
|
protected Prepare |
prepareResult
PREPARE command result
|
protected String |
sql
prepare statement sql command
|
autoGeneratedKeys, closed, closeOnCompletion, con, currResult, escape, fetchSize, isInsertDuplicate, lastSql, localInfileInputStream, lock, maxRows, queryTimeout, results, resultSetConcurrency, resultSetTypeCLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO| Constructor and Description |
|---|
BasePreparedStatement(String sql,
Connection con,
ClosableLock lock,
boolean canCachePrepStmts,
int autoGeneratedKeys,
int resultSetType,
int resultSetConcurrency,
int defaultFetchSize)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
addBatch() |
void |
addBatch(String sql)
Adds the given SQL command to the current list of commands for this
Statement
object. |
void |
clearBatch()
Empties this
Statement object's current list of SQL commands. |
void |
clearParameters()
Clears the current parameter values immediately.
|
abstract boolean |
execute() |
boolean |
execute(String sql)
Executes the given SQL statement, which may return multiple results.
|
boolean |
execute(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(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(String sql,
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.
|
abstract int[] |
executeBatch()
Submits a batch of commands to the database for execution and if all commands execute
successfully, returns an array of update counts.
|
abstract long[] |
executeLargeBatch()
Execute batch, like executeBatch(), with returning results with long[].
|
abstract long |
executeLargeUpdate() |
long |
executeLargeUpdate(String sql)
Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL
statement that returns nothing, such as an SQL DDL statement.
|
long |
executeLargeUpdate(String sql,
int autoGeneratedKeys)
Identical to executeLargeUpdate(String sql), with a flag that indicate that autoGeneratedKeys
(primary key fields with "auto_increment") generated id's must be retrieved.
|
long |
executeLargeUpdate(String sql,
int[] columnIndexes)
Identical to executeLargeUpdate(String sql, int autoGeneratedKeys) with autoGeneratedKeys =
Statement.RETURN_GENERATED_KEYS set.
|
long |
executeLargeUpdate(String sql,
String[] columnNames)
Identical to executeLargeUpdate(String sql, int autoGeneratedKeys) with autoGeneratedKeys =
Statement.RETURN_GENERATED_KEYS set.
|
abstract ResultSet |
executeQuery() |
ResultSet |
executeQuery(String sql)
Executes the given SQL statement, which returns a single
ResultSet object. |
abstract int |
executeUpdate() |
int |
executeUpdate(String sql)
Executes the given SQL statement, which may be an
INSERT, UPDATE, or
DELETE statement or an SQL statement that returns nothing, such as an SQL DDL
statement. |
int |
executeUpdate(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(String sql,
int[] columnIndexes)
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(String sql,
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.
|
String |
getLastSql() |
com.singlestore.jdbc.client.ColumnDecoder[] |
getMeta() |
abstract ResultSetMetaData |
getMetaData() |
abstract ParameterMetaData |
getParameterMetaData() |
void |
reset()
reset prepare statement in case of a failover.
|
void |
setArray(int parameterIndex,
Array x)
Sets the designated parameter to the given
java.sql.Array object. |
void |
setAsciiStream(int parameterIndex,
InputStream x)
Sets the designated parameter to the given input stream.
|
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 |
setAsciiStream(int parameterIndex,
InputStream x,
long 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
java.math.BigDecimal value. |
void |
setBinaryStream(int parameterIndex,
InputStream x)
Sets the designated parameter to the given input stream.
|
void |
setBinaryStream(int parameterIndex,
InputStream x,
int length)
Sets the designated parameter to the given input stream, which will have the specified number
of bytes.
|
void |
setBinaryStream(int parameterIndex,
InputStream x,
long length)
Sets the designated parameter to the given input stream, which will have the specified number
of bytes.
|
void |
setBlob(int parameterIndex,
Blob x)
Sets the designated parameter to the given
java.sql.Blob object. |
void |
setBlob(int parameterIndex,
InputStream inputStream)
Sets the designated parameter to a
InputStream object. |
void |
setBlob(int parameterIndex,
InputStream inputStream,
long length)
Sets the designated parameter to a
InputStream object. |
void |
setBoolean(int parameterIndex,
boolean x)
Sets the designated parameter to the given Java
boolean value. |
void |
setByte(int parameterIndex,
byte x)
Sets the designated parameter to the given Java
byte value. |
void |
setBytes(int parameterIndex,
byte[] x)
Sets the designated parameter to the given Java array of bytes.
|
void |
setCharacterStream(int parameterIndex,
Reader reader)
Sets the designated parameter to the given
Reader object. |
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 |
setCharacterStream(int parameterIndex,
Reader reader,
long length)
Sets the designated parameter to the given
Reader object, which is the given
number of characters long. |
void |
setClob(int parameterIndex,
Clob x)
Sets the designated parameter to the given
java.sql.Clob object. |
void |
setClob(int parameterIndex,
Reader reader)
Sets the designated parameter to a
Reader object. |
void |
setClob(int parameterIndex,
Reader reader,
long length)
Sets the designated parameter to a
Reader object. |
void |
setDate(int parameterIndex,
Date x)
Sets the designated parameter to the given
java.sql.Date value using the default
time zone of the virtual machine that is running the application. |
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 Java
double value. |
void |
setFloat(int parameterIndex,
float x)
Sets the designated parameter to the given Java
float value. |
void |
setInt(int parameterIndex,
int x)
Sets the designated parameter to the given Java
int value. |
void |
setLong(int parameterIndex,
long x)
Sets the designated parameter to the given Java
long value. |
void |
setNCharacterStream(int parameterIndex,
Reader value)
Sets the designated parameter to a
Reader object. |
void |
setNCharacterStream(int parameterIndex,
Reader value,
long length)
Sets the designated parameter to a
Reader object. |
void |
setNClob(int parameterIndex,
NClob value)
Sets the designated parameter to a
java.sql.NClob object. |
void |
setNClob(int parameterIndex,
Reader reader)
Sets the designated parameter to a
Reader object. |
void |
setNClob(int parameterIndex,
Reader reader,
long length)
Sets the designated parameter to a
Reader object. |
void |
setNString(int parameterIndex,
String value)
Sets the designated parameter to the given
String object. |
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 using 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 scaleOrLength)
Sets the value of the designated parameter with the given object.
|
void |
setObject(int parameterIndex,
Object x,
SQLType targetSqlType)
Sets the value of the designated parameter with the given object.
|
void |
setObject(int parameterIndex,
Object x,
SQLType targetSqlType,
int scaleOrLength)
Sets the value of the designated parameter with the given object.
|
void |
setParameter(int index,
Parameter param)
Set parameter
|
void |
setParameters(Parameters parameters)
Set all parameters
|
void |
setPrepareResult(Prepare prepareResult)
Set PREPARE result
|
void |
setRef(int parameterIndex,
Ref x)
Sets the designated parameter to the given
REF(<structured-type>) value. |
void |
setRowId(int parameterIndex,
RowId x)
Sets the designated parameter to the given
java.sql.RowId object. |
void |
setShort(int parameterIndex,
short x)
Sets the designated parameter to the given Java
short value. |
void |
setSQLXML(int parameterIndex,
SQLXML xmlObject)
Sets the designated parameter to the given
java.sql.SQLXML object. |
void |
setString(int parameterIndex,
String x)
Sets the designated parameter to the given Java
String value. |
void |
setTime(int parameterIndex,
Time x)
Sets the designated parameter to the given
java.sql.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
java.sql.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.
Use
setCharacterStream |
void |
setURL(int parameterIndex,
URL x)
Sets the designated parameter to the given
java.net.URL value. |
String |
toString() |
void |
updateMeta(com.singlestore.jdbc.client.ColumnDecoder[] ci)
update cached metadata list
|
abort, cancel, checkNotClosed, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, escapeTimeout, fetchRemaining, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getNextLocalInfileInputStream, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isWrapperFor, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setLocalInfileInputStream, setMaxFieldSize, setMaxRows, setNextLocalInfileInputStream, setPoolable, setQueryTimeout, unwrapclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcancel, clearWarnings, close, closeOnCompletion, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeoutisWrapperFor, unwrapprotected final String sql
protected Parameters parameters
protected List<Parameters> batchParameters
protected Prepare prepareResult
protected final boolean canCachePrepStmts
public BasePreparedStatement(String sql, Connection con, ClosableLock lock, boolean canCachePrepStmts, int autoGeneratedKeys, int resultSetType, int resultSetConcurrency, int defaultFetchSize)
sql - sql commandcon - connectionlock - thread safe lockcanCachePrepStmts - can cache prepared statementautoGeneratedKeys - indicate if automatif generated key retrival is requiredresultSetType - resultset typeresultSetConcurrency - resultset concurrencydefaultFetchSize - default fetch sizepublic void reset()
public String getLastSql()
getLastSql in class Statementpublic void setPrepareResult(Prepare prepareResult)
prepareResult - prepare resultpublic com.singlestore.jdbc.client.ColumnDecoder[] getMeta()
public void updateMeta(com.singlestore.jdbc.client.ColumnDecoder[] ci)
ci - metadata columnspublic abstract boolean execute()
throws SQLException
execute in interface PreparedStatementSQLExceptionpublic abstract ResultSet executeQuery() throws SQLException
executeQuery in interface PreparedStatementSQLExceptionpublic abstract int executeUpdate()
throws SQLException
executeUpdate in interface PreparedStatementSQLExceptionpublic abstract long executeLargeUpdate()
throws SQLException
executeLargeUpdate in interface PreparedStatementSQLExceptionpublic abstract void addBatch()
throws SQLException
addBatch in interface PreparedStatementSQLExceptionpublic abstract ResultSetMetaData getMetaData() throws SQLException
getMetaData in interface PreparedStatementSQLExceptionpublic abstract ParameterMetaData getParameterMetaData() throws SQLException
getParameterMetaData in interface PreparedStatementSQLExceptionpublic void setParameters(Parameters parameters)
parameters - parameterspublic void setParameter(int index,
Parameter param)
index - parameter indexparam - parameterpublic abstract int[] executeBatch()
throws SQLException
Statementint 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:
SUCCESS_NO_INFO -- 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:
EXECUTE_FAILED -- indicates that the command failed to execute
successfully and occurs only if a driver continues to process commands after a command
fails
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 process commands in a
batch update after a BatchUpdateException object has been thrown.
executeBatch in interface StatementexecuteBatch in class StatementSQLException - if a database access error occurs, this method is called on a closed
Statement 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.SQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running StatementStatement.addBatch(java.lang.String),
DatabaseMetaData.supportsBatchUpdates()public abstract long[] executeLargeBatch()
throws SQLException
StatementexecuteLargeBatch in interface StatementexecuteLargeBatch in class StatementSQLException - if a database error occur.public void addBatch(String sql) throws SQLException
StatementStatement
object. The commands in this list can be executed as a batch by calling the method
executeBatch.
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
addBatch in interface StatementaddBatch in class Statementsql - typically this is a SQL INSERT or UPDATE statementSQLException - if a database access error occurs, this method is called on a closed
Statement, the driver does not support batch updates, the method is called on
a PreparedStatement or CallableStatementStatement.executeBatch(),
DatabaseMetaData.supportsBatchUpdates()public boolean execute(String sql) throws SQLException
StatementThe 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).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
execute in interface Statementexecute in class Statementsql - any SQL statementtrue if the first result is a ResultSet object; false
if it is an update count or there are no resultsSQLException - if a database access error occurs, this method is called on a closed
Statement, the method is called on a PreparedStatement or
CallableStatementSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running StatementStatement.getResultSet(),
Statement.getUpdateCount(),
Statement.getMoreResults()public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
StatementINSERT 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).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
execute in interface Statementexecute in class Statementsql - 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_KEYStrue if the first result is a ResultSet object; false
if it is an update count or there are no resultsSQLException - if a database access error occurs, this method is called on a closed
Statement, the second parameter supplied to this method is not
Statement.RETURN_GENERATED_KEYS or Statement.NO_GENERATED_KEYS, the
method is called on a PreparedStatement or CallableStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this method with a
constant of Statement.RETURN_GENERATED_KEYSSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running StatementStatement.getResultSet(),
Statement.getUpdateCount(),
Statement.getMoreResults(),
Statement.getGeneratedKeys()public boolean execute(String sql, int[] columnIndexes) throws SQLException
StatementINSERT 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).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
execute in interface Statementexecute in class Statementsql - 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 getGeneratedKeystrue if the first result is a ResultSet object; false
if it is an update count or there are no resultsSQLException - if a database access error occurs, this method is called on a closed
Statement, the elements in the int array passed to this method
are not valid column indexes, the method is called on a PreparedStatement or
CallableStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running StatementStatement.getResultSet(),
Statement.getUpdateCount(),
Statement.getMoreResults()public boolean execute(String sql, String[] columnNames) throws SQLException
StatementINSERT 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).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
execute in interface Statementexecute in class Statementsql - 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 getGeneratedKeystrue if the next result is a ResultSet object; false
if it is an update count or there are no more resultsSQLException - if a database access error occurs, this method is called on a closed
Statement,the elements of the String array passed to this method
are not valid column names, the method is called on a PreparedStatement or
CallableStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running StatementStatement.getResultSet(),
Statement.getUpdateCount(),
Statement.getMoreResults(),
Statement.getGeneratedKeys()public ResultSet executeQuery(String sql) throws SQLException
StatementResultSet object.
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
executeQuery in interface StatementexecuteQuery in class Statementsql - an SQL statement to be sent to the database, typically a static SQL SELECT
statementResultSet object that contains the data produced by the given query;
never nullSQLException - if a database access error occurs, this method is called on a closed
Statement, the given SQL statement produces anything other than a single
ResultSet object, the method is called on a PreparedStatement or
CallableStatementSQLTimeoutException - when the driver has determined that the timeout value that
was specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running Statementpublic int executeUpdate(String sql) throws SQLException
StatementINSERT, UPDATE, or
DELETE statement or an SQL statement that returns nothing, such as an SQL DDL
statement.
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
executeUpdate in interface StatementexecuteUpdate in class Statementsql - 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.SQLException - if a database access error occurs, this method is called on a closed
Statement, the given SQL statement produces a ResultSet object,
the method is called on a PreparedStatement or CallableStatementSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running Statementpublic int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
StatementStatement 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).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
executeUpdate in interface StatementexecuteUpdate in class Statementsql - 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_KEYSSQLException - if a database access error occurs, this method is called on a closed
Statement, the given SQL statement returns a ResultSet object,
the given constant is not one of those allowed, the method is called on a
PreparedStatement or CallableStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this method with a
constant of Statement.RETURN_GENERATED_KEYSSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running Statementpublic int executeUpdate(String sql, int[] columnIndexes) throws SQLException
StatementINSERT
statement, or an SQL statement able to return auto-generated keys (the list of such statements
is vendor-specific).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
executeUpdate in interface StatementexecuteUpdate in class Statementsql - 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.columnIndexes - an array of column indexes indicating the columns that should be returned
from the inserted rowSQLException - if a database access error occurs, this method is called on a closed
Statement, the SQL statement returns a ResultSet object,the
second argument supplied to this method is not an int array whose elements are
valid column indexes, the method is called on a PreparedStatement or
CallableStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running Statementpublic int executeUpdate(String sql, String[] columnNames) throws SQLException
StatementINSERT statement,
or an SQL statement able to return auto-generated keys (the list of such statements is
vendor-specific).
Note:This method cannot be called on a PreparedStatement or
CallableStatement.
executeUpdate in interface StatementexecuteUpdate in class Statementsql - 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 nothingSQLException - if a database access error occurs, this method is called on a closed
Statement, the SQL statement returns a ResultSet object, the
second argument supplied to this method is not a String array whose elements
are valid column names, the method is called on a PreparedStatement or
CallableStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodSQLTimeoutException - when the driver has determined that the timeout value that was
specified by the setQueryTimeout method has been exceeded and has at least
attempted to cancel the currently running Statementpublic long executeLargeUpdate(String sql) throws SQLException
StatementexecuteLargeUpdate in interface StatementexecuteLargeUpdate in class Statementsql - sql commandSQLException - if any error occur during executionpublic long executeLargeUpdate(String sql, int autoGeneratedKeys) throws SQLException
StatementThose id's will be available using getGeneratedKeys() method.
executeLargeUpdate in interface StatementexecuteLargeUpdate in class Statementsql - sql commandautoGeneratedKeys - 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_KEYSSQLException - if any error occur during executionpublic long executeLargeUpdate(String sql, int[] columnIndexes) throws SQLException
StatementexecuteLargeUpdate in interface StatementexecuteLargeUpdate in class Statementsql - sql commandcolumnIndexes - column IndexesSQLException - if any error occur during executionpublic long executeLargeUpdate(String sql, String[] columnNames) throws SQLException
StatementexecuteLargeUpdate in interface StatementexecuteLargeUpdate in class Statementsql - sql commandcolumnNames - columns namesSQLException - if any error occur during executionpublic 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.TypesSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if sqlType is a ARRAY,
BLOB, CLOB, DATALINK, JAVA_OBJECT,
NCHAR, NCLOB, NVARCHAR, LONGNVARCHAR,
REF, ROWID, SQLXML or STRUCT data type and
the JDBC driver does not support this data typepublic void setBoolean(int parameterIndex,
boolean x)
throws SQLException
boolean value. The driver converts
this to an SQL BIT or BOOLEAN value when it sends it to the database.setBoolean in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setByte(int parameterIndex,
byte x)
throws SQLException
byte value. The driver converts
this to an SQL TINYINT value when it sends it to the database.setByte in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setShort(int parameterIndex,
short x)
throws SQLException
short value. The driver converts
this to an SQL SMALLINT value when it sends it to the database.setShort in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setInt(int parameterIndex,
int x)
throws SQLException
int value. The driver converts
this to an SQL INTEGER value when it sends it to the database.setInt in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setLong(int parameterIndex,
long x)
throws SQLException
long value. The driver converts
this to an SQL BIGINT value when it sends it to the database.setLong in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setFloat(int parameterIndex,
float x)
throws SQLException
float value. The driver converts
this to an SQL REAL value when it sends it to the database.setFloat in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setDouble(int parameterIndex,
double x)
throws SQLException
double value. The driver converts
this to an SQL DOUBLE value when it sends it to the database.setDouble in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setBigDecimal(int parameterIndex,
BigDecimal x)
throws SQLException
java.math.BigDecimal value. The driver
converts this to an SQL NUMERIC value when it sends it to the database.setBigDecimal in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setString(int parameterIndex,
String x)
throws SQLException
String value. The driver converts
this to an SQL VARCHAR or LONGVARCHAR value (depending on the
argument's size relative to the driver's limits on VARCHAR values) when it sends
it to the database.setString in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setBytes(int parameterIndex,
byte[] x)
throws SQLException
VARBINARY or LONGVARBINARY (depending on the argument's size
relative to the driver's limits on VARBINARY values) when it sends it to the
database.setBytes in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setDate(int parameterIndex,
Date x)
throws SQLException
java.sql.Date value using the default
time zone of the virtual machine that is running the application. The driver converts this to
an SQL DATE value when it sends it to the database.setDate in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setTime(int parameterIndex,
Time x)
throws SQLException
java.sql.Time value. The driver
converts this to an SQL TIME value when it sends it to the database.setTime in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setTimestamp(int parameterIndex,
Timestamp x)
throws SQLException
java.sql.Timestamp value. The driver
converts this to an SQL TIMESTAMP value when it sends it to the database.setTimestamp in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic 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 streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatement@Deprecated public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
setCharacterStreamWhen a very large Unicode value is input to a 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 a 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 - a java.io.InputStream object that contains the Unicode parameter valuelength - the number of bytes in the streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setBinaryStream(int parameterIndex,
InputStream x,
int length)
throws SQLException
LONGVARBINARY 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.
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, ...x - the java input stream which contains the binary parameter valuelength - the number of bytes in the streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic 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 or this method is called on a closed
PreparedStatementpublic void clearBatch()
throws SQLException
StatementStatement object's current list of SQL commands.
clearBatch in interface StatementclearBatch in class StatementSQLException - if a database access error occurs, this method is called on a closed
Statement or the driver does not support batch updatesStatement.addBatch(java.lang.String),
DatabaseMetaData.supportsBatchUpdates()public void setObject(int parameterIndex,
Object x,
int targetSqlType)
throws SQLException
This method is similar to setObject(int parameterIndex, Object x, int targetSqlType,
int scaleOrLength), 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 databaseSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support the specified
targetSqlTypeTypespublic void setObject(int parameterIndex,
Object x)
throws SQLException
The JDBC specification specifies a standard mapping from Java Object types to
SQL types. The given argument will be converted to the corresponding SQL type before being sent
to the database.
Note that this method may be used to pass datatabase- specific abstract data types, by using a driver-specific Java type.
If the object 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, NClob, Struct, java.net.URL,
RowId, SQLXML or Array, the driver should pass it to the
database as a value of the corresponding SQL type.
Note: Not all databases allow for a non-typed Null to be sent to the backend. For
maximum portability, the setNull or the
setObject(int parameterIndex, Object x, int sqlType) method should be used instead of
setObject(int parameterIndex, Object x).
Note: This method throws an exception if there is an ambiguity, for example, if the object is of a class implementing more than one of the interfaces named above.
setObject in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the object containing the input parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatement or the type of the given object is ambiguouspublic 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.io.Reader object that contains the Unicode datalength - the number of characters in the streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setRef(int parameterIndex,
Ref x)
throws SQLException
REF(<structured-type>) value. The
driver converts this to an SQL REF value when it sends it to the database.setRef in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - an SQL REF valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setBlob(int parameterIndex,
Blob x)
throws SQLException
java.sql.Blob object. The driver
converts this to an SQL BLOB value when it sends it to the database.setBlob in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - a Blob object that maps an SQL BLOB valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setClob(int parameterIndex,
Clob x)
throws SQLException
java.sql.Clob object. The driver
converts this to an SQL CLOB value when it sends it to the database.setClob in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - a Clob object that maps an SQL CLOB valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setArray(int parameterIndex,
Array x)
throws SQLException
java.sql.Array object. The driver
converts this to an SQL ARRAY value when it sends it to the database.setArray in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - an Array object that maps an SQL ARRAY valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic 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 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 dateSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic 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 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 timeSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic 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 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 timestampSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic 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 REFSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if sqlType is a ARRAY,
BLOB, CLOB, DATALINK, JAVA_OBJECT,
NCHAR, NCLOB, NVARCHAR, LONGNVARCHAR,
REF, ROWID, SQLXML or STRUCT data type and
the JDBC driver does not support this data type or if the JDBC driver does not support this
methodpublic void setURL(int parameterIndex,
URL x)
throws SQLException
java.net.URL value. The driver converts
this to an SQL DATALINK value when it sends it to the database.setURL in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the java.net.URL object to be setSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setRowId(int parameterIndex,
RowId x)
throws SQLException
java.sql.RowId object. The driver
converts this to a SQL ROWID value when it sends it to the databasesetRowId in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setNString(int parameterIndex,
String value)
throws SQLException
String object. The driver converts this
to a SQL NCHAR or NVARCHAR or LONGNVARCHAR value
(depending on the argument's size relative to the driver's limits on NVARCHAR
values) when it sends it to the database.setNString in interface PreparedStatementparameterIndex - of the first parameter is 1, the second is 2, ...value - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if the driver does not support national character sets; if the driver can detect
that a data conversion error could occur; if a database access error occurs; or this method
is called on a closed PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setNCharacterStream(int parameterIndex,
Reader value,
long length)
throws SQLException
Reader object. The Reader reads
the data till end-of-file is reached. The driver does the necessary conversion from Java
character format to the national character set in the database.setNCharacterStream in interface PreparedStatementparameterIndex - of the first parameter is 1, the second is 2, ...value - the parameter valuelength - the number of characters in the parameter data.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if the driver does not support national character sets; if the driver can detect
that a data conversion error could occur; if a database access error occurs; or this method
is called on a closed PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setNClob(int parameterIndex,
NClob value)
throws SQLException
java.sql.NClob object. The driver converts this
to a SQL NCLOB value when it sends it to the database.setNClob in interface PreparedStatementparameterIndex - of the first parameter is 1, the second is 2, ...value - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if the driver does not support national character sets; if the driver can detect
that a data conversion error could occur; if a database access error occurs; or this method
is called on a closed PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setClob(int parameterIndex,
Reader reader,
long length)
throws SQLException
Reader object. The reader must contain the
number of characters specified by length otherwise a SQLException will be
generated when the PreparedStatement is executed. This method differs from the
setCharacterStream (int, Reader, int) method because it informs the driver that
the parameter value should be sent to the server as a CLOB. When the
setCharacterStream method is used, the driver may have to do extra work to determine
whether the parameter data should be sent to the server as a LONGVARCHAR or a
CLOBsetClob in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...reader - An object that contains the data to set the parameter value to.length - the number of characters in the parameter data.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatement or if the length specified is less than zero.SQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setBlob(int parameterIndex,
InputStream inputStream,
long length)
throws SQLException
InputStream object. The inputstream must
contain the number of characters specified by length otherwise a SQLException will
be generated when the PreparedStatement is executed. This method differs from the
setBinaryStream (int, InputStream, int) method because it informs the driver that
the parameter value should be sent to the server as a BLOB. When the
setBinaryStream method is used, the driver may have to do extra work to determine
whether the parameter data should be sent to the server as a LONGVARBINARY or a
BLOBsetBlob in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...inputStream - An object that contains the data to set the parameter value to.length - the number of bytes in the parameter data.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatement; if the length specified is less than zero or if the number of
bytes in the inputstream does not match the specified length.SQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setNClob(int parameterIndex,
Reader reader,
long length)
throws SQLException
Reader object. The reader must contain the
number of characters specified by length otherwise a SQLException will be
generated when the PreparedStatement is executed. This method differs from the
setCharacterStream (int, Reader, int) method because it informs the driver that
the parameter value should be sent to the server as a NCLOB. When the
setCharacterStream method is used, the driver may have to do extra work to determine
whether the parameter data should be sent to the server as a LONGNVARCHAR or a
NCLOBsetNClob in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...reader - An object that contains the data to set the parameter value to.length - the number of characters in the parameter data.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if the length specified is less than zero; if the driver does not support
national character sets; if the driver can detect that a data conversion error could occur;
if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setSQLXML(int parameterIndex,
SQLXML xmlObject)
throws SQLException
java.sql.SQLXML object. The driver
converts this to an SQL XML value when it sends it to the database.
setSQLXML in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...xmlObject - a SQLXML object that maps an SQL XML valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatement or the java.xml.transform.Result, Writer
or OutputStream has not been closed for the SQLXML objectSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setObject(int parameterIndex,
Object x,
int targetSqlType,
int scaleOrLength)
throws SQLException
If the second argument is an InputStream then the stream must contain the
number of bytes specified by scaleOrLength. If the second argument is a Reader
then the reader must contain the number of characters specified by scaleOrLength. If these
conditions are not true the driver will generate a SQLException when the prepared
statement is executed.
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, NClob, Struct,
java.net.URL, 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 database-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.scaleOrLength - for java.sql.Types.DECIMAL or
java.sql.Types.NUMERIC types, this is the number of digits after the decimal point.
For Java Object types InputStream and Reader, this is the length
of the data in the stream or reader. For all other types, this value will be ignored.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatement or if the Java Object specified by x is an InputStream or Reader
object and the value of the scale parameter is less than zeroSQLFeatureNotSupportedException - if the JDBC driver does not support the specified
targetSqlTypeTypespublic void setAsciiStream(int parameterIndex,
InputStream x,
long 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 streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setBinaryStream(int parameterIndex,
InputStream x,
long length)
throws SQLException
LONGVARBINARY 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.
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, ...x - the java input stream which contains the binary parameter valuelength - the number of bytes in the streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setCharacterStream(int parameterIndex,
Reader reader,
long 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.io.Reader object that contains the Unicode datalength - the number of characters in the streamSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementpublic void setAsciiStream(int parameterIndex,
InputStream x)
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.
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setAsciiStream which takes a length parameter.
setAsciiStream in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the Java input stream that contains the ASCII parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setBinaryStream(int parameterIndex,
InputStream x)
throws SQLException
LONGVARBINARY 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.
Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setBinaryStream which takes a length parameter.
setBinaryStream in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the java input stream which contains the binary parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setCharacterStream(int parameterIndex,
Reader reader)
throws SQLException
Reader object. 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.
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setCharacterStream which takes a length parameter.
setCharacterStream in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...reader - the java.io.Reader object that contains the Unicode dataSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed
PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setNCharacterStream(int parameterIndex,
Reader value)
throws SQLException
Reader object. The Reader reads
the data till end-of-file is reached. The driver does the necessary conversion from Java
character format to the national character set in the database.
Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setNCharacterStream which takes a length parameter.
setNCharacterStream in interface PreparedStatementparameterIndex - of the first parameter is 1, the second is 2, ...value - the parameter valueSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if the driver does not support national character sets; if the driver can detect
that a data conversion error could occur; if a database access error occurs; or this method
is called on a closed PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setClob(int parameterIndex,
Reader reader)
throws SQLException
Reader object. This method differs from the
setCharacterStream (int, Reader) method because it informs the driver that the
parameter value should be sent to the server as a CLOB. When the
setCharacterStream method is used, the driver may have to do extra work to determine
whether the parameter data should be sent to the server as a LONGVARCHAR or a
CLOB
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setClob which takes a length parameter.
setClob in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...reader - An object that contains the data to set the parameter value to.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatementor if parameterIndex does not correspond to a parameter marker in
the SQL statementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setBlob(int parameterIndex,
InputStream inputStream)
throws SQLException
InputStream object. This method differs from
the setBinaryStream (int, InputStream) method because it informs the driver that
the parameter value should be sent to the server as a BLOB. When the
setBinaryStream method is used, the driver may have to do extra work to determine
whether the parameter data should be sent to the server as a LONGVARBINARY or a
BLOB
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setBlob which takes a length parameter.
setBlob in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...inputStream - An object that contains the data to set the parameter value to.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs; this method is called on a closed
PreparedStatement or if parameterIndex does not correspond to a parameter marker in
the SQL statement,SQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setNClob(int parameterIndex,
Reader reader)
throws SQLException
Reader object. This method differs from the
setCharacterStream (int, Reader) method because it informs the driver that the
parameter value should be sent to the server as a NCLOB. When the
setCharacterStream method is used, the driver may have to do extra work to determine
whether the parameter data should be sent to the server as a LONGNVARCHAR or a
NCLOB
Note: Consult your JDBC driver documentation to determine if it might be more
efficient to use a version of setNClob which takes a length parameter.
setNClob in interface PreparedStatementparameterIndex - index of the first parameter is 1, the second is 2, ...reader - An object that contains the data to set the parameter value to.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if the driver does not support national character sets; if the driver can detect
that a data conversion error could occur; if a database access error occurs or this method
is called on a closed PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support this methodpublic void setObject(int parameterIndex,
Object x,
SQLType targetSqlType,
int scaleOrLength)
throws SQLException
If the second argument is an InputStream then the stream must contain the number of
bytes specified by scaleOrLength. If the second argument is a Reader then the reader
must contain the number of characters specified by scaleOrLength. If these conditions are not
true the driver will generate a SQLException when the prepared statement is executed.
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, NClob, Struct, java.net.URL, 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 database-specific abstract data types.
The default implementation will throw SQLFeatureNotSupportedException
setObject in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the object containing the input parameter valuetargetSqlType - the SQL type to be sent to the database. The scale argument may further
qualify this type.scaleOrLength - for java.sql.JDBCType.DECIMAL or java.sql.JDBCType.NUMERIC
types, this is the number of digits after the decimal point. For Java Object types InputStream and Reader, this is the length of the data in the stream or reader.
For all other types, this value will be ignored.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed PreparedStatement or if the Java Object specified by x is an InputStream or Reader object
and the value of the scale parameter is less than zeroSQLFeatureNotSupportedException - if the JDBC driver does not support the specified
targetSqlTypeJDBCType,
SQLTypepublic void setObject(int parameterIndex,
Object x,
SQLType targetSqlType)
throws SQLException
This method is similar to setObject(int parameterIndex, Object x, SQLType
targetSqlType, int scaleOrLength), except that it assumes a scale of zero.
The default implementation will throw SQLFeatureNotSupportedException
setObject in interface PreparedStatementparameterIndex - the first parameter is 1, the second is 2, ...x - the object containing the input parameter valuetargetSqlType - the SQL type to be sent to the databaseSQLException - if parameterIndex does not correspond to a parameter marker in the SQL
statement; if a database access error occurs or this method is called on a closed PreparedStatementSQLFeatureNotSupportedException - if the JDBC driver does not support the specified
targetSqlTypeJDBCType,
SQLTypeCopyright © 2025 SingleStore. All rights reserved.