Class ProfilingPreparedStatement
- java.lang.Object
-
- com.avoka.core.cayenne.ProfilingPreparedStatement
-
- All Implemented Interfaces:
AutoCloseable
,PreparedStatement
,Statement
,Wrapper
public class ProfilingPreparedStatement extends Object implements PreparedStatement
Provides a profiling prepared statement class wrapper.- Since:
- 4.2.0
-
-
Field Summary
-
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
-
-
Constructor Summary
Constructors Constructor Description ProfilingPreparedStatement(PreparedStatement preparedStatement, String sql)
Create a profiling prepared statement with the given statement and SQL.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addBatch()
Adds a set of parameters to thisPreparedStatement
object's batch of commands.void
addBatch(String sql)
Adds the given SQL command to the current list of commmands for thisStatement
object.void
cancel()
Cancels thisStatement
object if both the DBMS and driver support aborting an SQL statement.void
clearBatch()
Empties thisStatement
object's current list of SQL commands.void
clearParameters()
Clears the current parameter values immediately.void
clearWarnings()
Clears all the warnings reported on thisStatement
object.void
close()
Releases thisStatement
object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.void
closeOnCompletion()
boolean
execute()
Executes the SQL statement in thisPreparedStatement
object, which may be any kind of SQL statement.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.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 thisPreparedStatement
object and returns theResultSet
object generated by the query.ResultSet
executeQuery(String sql)
Executes the given SQL statement, which returns a singleResultSet
object.int
executeUpdate()
Executes the SQL statement in thisPreparedStatement
object, which must be an SQLINSERT
,UPDATE
orDELETE
statement; or an SQL statement that returns nothing, such as a DDL statement.int
executeUpdate(String sql)
Executes the given SQL statement, which may be anINSERT
,UPDATE
, orDELETE
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 thisStatement
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.Connection
getConnection()
Retrieves theConnection
object that produced thisStatement
object.int
getFetchDirection()
Retrieves the direction for fetching rows from database tables that is the default for result sets generated from thisStatement
object.int
getFetchSize()
Retrieves the number of result set rows that is the default fetch size forResultSet
objects generated from thisStatement
object.ResultSet
getGeneratedKeys()
Retrieves any auto-generated keys created as a result of executing thisStatement
object.int
getMaxFieldSize()
Retrieves the maximum number of bytes that can be returned for character and binary column values in aResultSet
object produced by thisStatement
object.int
getMaxRows()
Retrieves the maximum number of rows that aResultSet
object produced by thisStatement
object can contain.ResultSetMetaData
getMetaData()
Retrieves aResultSetMetaData
object that contains information about the columns of theResultSet
object that will be returned when thisPreparedStatement
object is executed.boolean
getMoreResults()
Moves to thisStatement
object's next result, returnstrue
if it is aResultSet
object, and implicitly closes any currentResultSet
object(s) obtained with the methodgetResultSet
.boolean
getMoreResults(int current)
Moves to thisStatement
object's next result, deals with any currentResultSet
object(s) according to the instructions specified by the given flag, and returnstrue
if the next result is aResultSet
object.ParameterMetaData
getParameterMetaData()
Retrieves the number, types and properties of thisPreparedStatement
object's parameters.int
getQueryTimeout()
Retrieves the number of seconds the driver will wait for aStatement
object to execute.ResultSet
getResultSet()
Retrieves the current result as aResultSet
object.int
getResultSetConcurrency()
Retrieves the result set concurrency forResultSet
objects generated by thisStatement
object.int
getResultSetHoldability()
Retrieves the result set holdability forResultSet
objects generated by thisStatement
object.int
getResultSetType()
Retrieves the result set type forResultSet
objects generated by thisStatement
object.int
getUpdateCount()
Retrieves the current result as an update count; if the result is aResultSet
object or there are no more results, -1 is returned.SQLWarning
getWarnings()
Retrieves the first warning reported by calls on thisStatement
object.boolean
isClosed()
boolean
isCloseOnCompletion()
boolean
isPoolable()
boolean
isWrapperFor(Class<?> iface)
void
setArray(int i, Array x)
Sets the designated parameter to the givenArray
object.void
setAsciiStream(int parameterIndex, InputStream x)
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)
void
setBigDecimal(int parameterIndex, BigDecimal x)
Sets the designated parameter to the givenjava.math.BigDecimal
value.void
setBinaryStream(int parameterIndex, InputStream x)
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)
void
setBlob(int parameterIndex, InputStream inputStream)
void
setBlob(int parameterIndex, InputStream inputStream, long length)
void
setBlob(int i, Blob x)
Sets the designated parameter to the givenBlob
object.void
setBoolean(int parameterIndex, boolean x)
Sets the designated parameter to the given Javaboolean
value.void
setByte(int parameterIndex, byte x)
Sets the designated parameter to the given Javabyte
value.void
setBytes(int parameterIndex, byte[] x)
Sets the designated parameter to the given Java array of bytes.void
setCharacterStream(int parameterIndex, Reader reader)
void
setCharacterStream(int parameterIndex, Reader reader, int length)
Sets the designated parameter to the givenReader
object, which is the given number of characters long.void
setCharacterStream(int parameterIndex, Reader reader, long length)
void
setClob(int parameterIndex, Reader reader)
void
setClob(int parameterIndex, Reader reader, long length)
void
setClob(int i, Clob x)
Sets the designated parameter to the givenClob
object.void
setCursorName(String name)
Sets the SQL cursor name to the givenString
, which will be used by subsequentStatement
objectexecute
methods.void
setDate(int parameterIndex, Date x)
Sets the designated parameter to the givenjava.sql.Date
value.void
setDate(int parameterIndex, Date x, Calendar cal)
Sets the designated parameter to the givenjava.sql.Date
value, using the givenCalendar
object.void
setDouble(int parameterIndex, double x)
Sets the designated parameter to the given Javadouble
value.void
setEscapeProcessing(boolean enable)
Sets escape processing on or off.void
setFetchDirection(int direction)
Gives the driver a hint as to the direction in which rows will be processed inResultSet
objects created using thisStatement
object.void
setFetchSize(int rows)
Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed.void
setFloat(int parameterIndex, float x)
Sets the designated parameter to the given Javafloat
value.void
setInt(int parameterIndex, int x)
Sets the designated parameter to the given Javaint
value.void
setLong(int parameterIndex, long x)
Sets the designated parameter to the given Javalong
value.void
setMaxFieldSize(int max)
Sets the limit for the maximum number of bytes in aResultSet
column storing character or binary values to the given number of bytes.void
setMaxRows(int max)
Sets the limit for the maximum number of rows that anyResultSet
object can contain to the given number.void
setNCharacterStream(int parameterIndex, Reader value)
void
setNCharacterStream(int parameterIndex, Reader value, long length)
void
setNClob(int parameterIndex, Reader reader)
void
setNClob(int parameterIndex, Reader reader, long length)
void
setNClob(int parameterIndex, NClob value)
void
setNString(int parameterIndex, String value)
void
setNull(int parameterIndex, int sqlType)
Sets the designated parameter to SQLNULL
.void
setNull(int paramIndex, int sqlType, String typeName)
Sets the designated parameter to SQLNULL
.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 scale)
Sets the value of the designated parameter with the given object.void
setPoolable(boolean poolable)
void
setQueryTimeout(int seconds)
Sets the number of seconds the driver will wait for aStatement
object to execute to the given number of seconds.void
setRef(int i, Ref x)
Sets the designated parameter to the givenREF(<structured-type>)
value.void
setRowId(int parameterIndex, RowId x)
void
setShort(int parameterIndex, short x)
Sets the designated parameter to the given Javashort
value.void
setSQLXML(int parameterIndex, SQLXML xmlObject)
void
setString(int parameterIndex, String x)
Sets the designated parameter to the given JavaString
value.void
setTime(int parameterIndex, Time x)
Sets the designated parameter to the givenjava.sql.Time
value.void
setTime(int parameterIndex, Time x, Calendar cal)
Sets the designated parameter to the givenjava.sql.Time
value, using the givenCalendar
object.void
setTimestamp(int parameterIndex, Timestamp x)
Sets the designated parameter to the givenjava.sql.Timestamp
value.void
setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
Sets the designated parameter to the givenjava.sql.Timestamp
value, using the givenCalendar
object.void
setUnicodeStream(int parameterIndex, InputStream x, int length)
Deprecated.void
setURL(int parameterIndex, URL x)
Sets the designated parameter to the givenjava.net.URL
value.<T> T
unwrap(Class<T> iface)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.sql.PreparedStatement
executeLargeUpdate, setObject, setObject
-
Methods inherited from interface java.sql.Statement
enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getLargeMaxRows, getLargeUpdateCount, isSimpleIdentifier, setLargeMaxRows
-
-
-
-
Constructor Detail
-
ProfilingPreparedStatement
public ProfilingPreparedStatement(PreparedStatement preparedStatement, String sql)
Create a profiling prepared statement with the given statement and SQL.- Parameters:
preparedStatement
- the prepared statement to profilesql
-
-
-
Method Detail
-
close
public void close() throws SQLException
Releases thisStatement
object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed. It is generally good practice to release resources as soon as you are finished with them to avoid tying up database resources.Calling the method
close
on aStatement
object that is already closed has no effect.Note: A
Statement
object is automatically closed when it is garbage collected. When aStatement
object is closed, its currentResultSet
object, if one exists, is also closed.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceStatement
- Throws:
SQLException
- if a database access error occurs
-
addBatch
public void addBatch() throws SQLException
Adds a set of parameters to thisPreparedStatement
object's batch of commands.- Specified by:
addBatch
in interfacePreparedStatement
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
- See Also:
Statement.addBatch(java.lang.String)
-
clearParameters
public void clearParameters() throws SQLException
Clears the current parameter values immediately.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
.- Specified by:
clearParameters
in interfacePreparedStatement
- Throws:
SQLException
- if a database access error occurs
-
execute
public boolean execute() throws SQLException
Executes the SQL statement in thisPreparedStatement
object, which may be any kind of SQL statement. Some prepared statements return multiple results; theexecute
method handles these complex statements as well as the simpler form of statements handled by the methodsexecuteQuery
andexecuteUpdate
.The
execute
method returns aboolean
to indicate the form of the first result. You must call either the methodgetResultSet
orgetUpdateCount
to retrieve the result; you must callgetMoreResults
to move to any subsequent result(s).- Specified by:
execute
in interfacePreparedStatement
- Returns:
true
if the first result is aResultSet
object;false
if the first result is an update count or there is no result- Throws:
SQLException
- if a database access error occurs or an argument is supplied to this method- See Also:
Statement.execute(java.lang.String)
,Statement.getResultSet()
,Statement.getUpdateCount()
,Statement.getMoreResults()
-
executeQuery
public ResultSet executeQuery() throws SQLException
Executes the SQL query in thisPreparedStatement
object and returns theResultSet
object generated by the query.- Specified by:
executeQuery
in interfacePreparedStatement
- Returns:
- a
ResultSet
object that contains the data produced by the query; nevernull
- Throws:
SQLException
- if a database access error occurs or the SQL statement does not return aResultSet
object
-
executeUpdate
public int executeUpdate() throws SQLException
Executes the SQL statement in thisPreparedStatement
object, which must be an SQLINSERT
,UPDATE
orDELETE
statement; or an SQL statement that returns nothing, such as a DDL statement.- Specified by:
executeUpdate
in interfacePreparedStatement
- Returns:
- either (1) the row count for
INSERT
,UPDATE
, orDELETE
statements or (2) 0 for SQL statements that return nothing - Throws:
SQLException
- if a database access error occurs or the SQL statement returns aResultSet
object
-
getMetaData
public ResultSetMetaData getMetaData() throws SQLException
Retrieves aResultSetMetaData
object that contains information about the columns of theResultSet
object that will be returned when thisPreparedStatement
object is executed.Because a
PreparedStatement
object is precompiled, it is possible to know about theResultSet
object that it will return without having to execute it. Consequently, it is possible to invoke the methodgetMetaData
on aPreparedStatement
object rather than waiting to execute it and then invoking theResultSet.getMetaData
method on theResultSet
object that is returned.NOTE: Using this method may be expensive for some drivers due to the lack of underlying DBMS support.
- Specified by:
getMetaData
in interfacePreparedStatement
- Returns:
- the description of a
ResultSet
object's columns ornull
if the driver cannot return aResultSetMetaData
object - Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
getParameterMetaData
public ParameterMetaData getParameterMetaData() throws SQLException
Retrieves the number, types and properties of thisPreparedStatement
object's parameters.- Specified by:
getParameterMetaData
in interfacePreparedStatement
- Returns:
- a
ParameterMetaData
object that contains information about the number, types and properties of thisPreparedStatement
object's parameters - Throws:
SQLException
- if a database access error occurs- Since:
- 1.4
- See Also:
ParameterMetaData
-
setArray
public void setArray(int i, Array x) throws SQLException
Sets the designated parameter to the givenArray
object. The driver converts this to an SQLARRAY
value when it sends it to the database.- Specified by:
setArray
in interfacePreparedStatement
- Parameters:
i
- the first parameter is 1, the second is 2, ...x
- anArray
object that maps an SQLARRAY
value- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setAsciiStream
public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException
Sets the designated parameter to the given input stream, which will have the specified number of bytes. When a very large ASCII value is input to aLONGVARCHAR
parameter, it may be more practical to send it via ajava.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.
- Specified by:
setAsciiStream
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the Java input stream that contains the ASCII parameter valuelength
- the number of bytes in the stream- Throws:
SQLException
- if a database access error occurs
-
setBigDecimal
public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
Sets the designated parameter to the givenjava.math.BigDecimal
value. The driver converts this to an SQLNUMERIC
value when it sends it to the database.- Specified by:
setBigDecimal
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setBinaryStream
public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException
Sets the designated parameter to the given input stream, which will have the specified number of bytes. When a very large binary value is input to aLONGVARBINARY
parameter, it may be more practical to send it via ajava.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.
- Specified by:
setBinaryStream
in interfacePreparedStatement
- Parameters:
parameterIndex
- 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 stream- Throws:
SQLException
- if a database access error occurs
-
setBlob
public void setBlob(int i, Blob x) throws SQLException
Sets the designated parameter to the givenBlob
object. The driver converts this to an SQLBLOB
value when it sends it to the database.- Specified by:
setBlob
in interfacePreparedStatement
- Parameters:
i
- the first parameter is 1, the second is 2, ...x
- aBlob
object that maps an SQLBLOB
value- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setBoolean
public void setBoolean(int parameterIndex, boolean x) throws SQLException
Sets the designated parameter to the given Javaboolean
value. The driver converts this to an SQLBIT
value when it sends it to the database.- Specified by:
setBoolean
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setByte
public void setByte(int parameterIndex, byte x) throws SQLException
Sets the designated parameter to the given Javabyte
value. The driver converts this to an SQLTINYINT
value when it sends it to the database.- Specified by:
setByte
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setBytes
public void setBytes(int parameterIndex, byte[] x) throws SQLException
Sets the designated parameter to the given Java array of bytes. The driver converts this to an SQLVARBINARY
orLONGVARBINARY
(depending on the argument's size relative to the driver's limits onVARBINARY
values) when it sends it to the database.- Specified by:
setBytes
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setCharacterStream
public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException
Sets the designated parameter to the givenReader
object, which is the given number of characters long. When a very large UNICODE value is input to aLONGVARCHAR
parameter, it may be more practical to send it via ajava.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.
- Specified by:
setCharacterStream
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...reader
- thejava.io.Reader
object that contains the Unicode datalength
- the number of characters in the stream- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setClob
public void setClob(int i, Clob x) throws SQLException
Sets the designated parameter to the givenClob
object. The driver converts this to an SQLCLOB
value when it sends it to the database.- Specified by:
setClob
in interfacePreparedStatement
- Parameters:
i
- the first parameter is 1, the second is 2, ...x
- aClob
object that maps an SQLCLOB
value- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setDate
public void setDate(int parameterIndex, Date x) throws SQLException
Sets the designated parameter to the givenjava.sql.Date
value. The driver converts this to an SQLDATE
value when it sends it to the database.- Specified by:
setDate
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setDate
public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException
Sets the designated parameter to the givenjava.sql.Date
value, using the givenCalendar
object. The driver uses theCalendar
object to construct an SQLDATE
value, which the driver then sends to the database. With aCalendar
object, the driver can calculate the date taking into account a custom timezone. If noCalendar
object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.- Specified by:
setDate
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- theCalendar
object the driver will use to construct the date- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setDouble
public void setDouble(int parameterIndex, double x) throws SQLException
Sets the designated parameter to the given Javadouble
value. The driver converts this to an SQLDOUBLE
value when it sends it to the database.- Specified by:
setDouble
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setFloat
public void setFloat(int parameterIndex, float x) throws SQLException
Sets the designated parameter to the given Javafloat
value. The driver converts this to an SQLFLOAT
value when it sends it to the database.- Specified by:
setFloat
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setInt
public void setInt(int parameterIndex, int x) throws SQLException
Sets the designated parameter to the given Javaint
value. The driver converts this to an SQLINTEGER
value when it sends it to the database.- Specified by:
setInt
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setLong
public void setLong(int parameterIndex, long x) throws SQLException
Sets the designated parameter to the given Javalong
value. The driver converts this to an SQLBIGINT
value when it sends it to the database.- Specified by:
setLong
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setNull
public void setNull(int parameterIndex, int sqlType) throws SQLException
Sets the designated parameter to SQLNULL
.Note: You must specify the parameter's SQL type.
- Specified by:
setNull
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...sqlType
- the SQL type code defined injava.sql.Types
- Throws:
SQLException
- if a database access error occurs
-
setNull
public void setNull(int paramIndex, int sqlType, String typeName) throws SQLException
Sets the designated parameter to SQLNULL
. This version of the methodsetNull
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.
- Specified by:
setNull
in interfacePreparedStatement
- Parameters:
paramIndex
- the first parameter is 1, the second is 2, ...sqlType
- a value fromjava.sql.Types
typeName
- the fully-qualified name of an SQL user-defined type; ignored if the parameter is not a user-defined type or REF- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setObject
public void setObject(int parameterIndex, Object x) throws SQLException
Sets the value of the designated parameter using the given object. The second parameter must be of type
Object
; therefore, thejava.lang
equivalent objects should be used for built-in types.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 methodSQLData.writeSQL
to write it to the SQL data stream. If, on the other hand, the object is of a class implementingRef
,Blob
,Clob
,Struct
, orArray
, the driver should pass it to the database as a value of the corresponding SQL type.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.
- Specified by:
setObject
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter value- Throws:
SQLException
- if a database access error occurs or the type of the given object is ambiguous
-
setObject
public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
Sets the value of the designated parameter with the given object. This method is like the methodsetObject
above, except that it assumes a scale of zero.- Specified by:
setObject
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter valuetargetSqlType
- the SQL type (as defined in java.sql.Types) to be sent to the database- Throws:
SQLException
- if a database access error occurs
-
setObject
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 methodSQLData.writeSQL
to write it to the SQL data stream. If, on the other hand, the object is of a class implementingRef
,Blob
,Clob
,Struct
, orArray
, 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.
- Specified by:
setObject
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter valuetargetSqlType
- the SQL type (as defined in java.sql.Types) to be sent to the database. The scale argument may further qualify this type.scale
- for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types, this is the number of digits after the decimal point. For all other types, this value will be ignored.- Throws:
SQLException
- if a database access error occurs- See Also:
Types
-
setRef
public void setRef(int i, Ref x) throws SQLException
Sets the designated parameter to the givenREF(<structured-type>)
value. The driver converts this to an SQLREF
value when it sends it to the database.- Specified by:
setRef
in interfacePreparedStatement
- Parameters:
i
- the first parameter is 1, the second is 2, ...x
- an SQLREF
value- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setShort
public void setShort(int parameterIndex, short x) throws SQLException
Sets the designated parameter to the given Javashort
value. The driver converts this to an SQLSMALLINT
value when it sends it to the database.- Specified by:
setShort
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setString
public void setString(int parameterIndex, String x) throws SQLException
Sets the designated parameter to the given JavaString
value. The driver converts this to an SQLVARCHAR
orLONGVARCHAR
value (depending on the argument's size relative to the driver's limits onVARCHAR
values) when it sends it to the database.- Specified by:
setString
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setTime
public void setTime(int parameterIndex, Time x) throws SQLException
Sets the designated parameter to the givenjava.sql.Time
value. The driver converts this to an SQLTIME
value when it sends it to the database.- Specified by:
setTime
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setTime
public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException
Sets the designated parameter to the givenjava.sql.Time
value, using the givenCalendar
object. The driver uses theCalendar
object to construct an SQLTIME
value, which the driver then sends to the database. With aCalendar
object, the driver can calculate the time taking into account a custom timezone. If noCalendar
object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.- Specified by:
setTime
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- theCalendar
object the driver will use to construct the time- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setTimestamp
public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
Sets the designated parameter to the givenjava.sql.Timestamp
value. The driver converts this to an SQLTIMESTAMP
value when it sends it to the database.- Specified by:
setTimestamp
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value- Throws:
SQLException
- if a database access error occurs
-
setTimestamp
public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException
Sets the designated parameter to the givenjava.sql.Timestamp
value, using the givenCalendar
object. The driver uses theCalendar
object to construct an SQLTIMESTAMP
value, which the driver then sends to the database. With aCalendar
object, the driver can calculate the timestamp taking into account a custom timezone. If noCalendar
object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.- Specified by:
setTimestamp
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- theCalendar
object the driver will use to construct the timestamp- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
setURL
public void setURL(int parameterIndex, URL x) throws SQLException
Sets the designated parameter to the givenjava.net.URL
value. The driver converts this to an SQLDATALINK
value when it sends it to the database.- Specified by:
setURL
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- thejava.net.URL
object to be set- Throws:
SQLException
- if a database access error occurs- Since:
- 1.4
-
setUnicodeStream
public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
Deprecated.Sets the designated parameter to the given input stream, which will have the specified number of bytes. A Unicode character has two bytes, with the first byte being the high byte, and the second being the low byte. When a very large Unicode value is input to aLONGVARCHAR
parameter, it may be more practical to send it via ajava.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.Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.
- Specified by:
setUnicodeStream
in interfacePreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- ajava.io.InputStream
object that contains the Unicode parameter value as two-byte Unicode characterslength
- the number of bytes in the stream- Throws:
SQLException
- if a database access error occurs
-
addBatch
public void addBatch(String sql) throws SQLException
Adds the given SQL command to the current list of commmands for thisStatement
object. The commands in this list can be executed as a batch by calling the methodexecuteBatch
.NOTE: This method is optional.
- Specified by:
addBatch
in interfaceStatement
- Parameters:
sql
- typically this is a static SQLINSERT
orUPDATE
statement- Throws:
SQLException
- if a database access error occurs, or the driver does not support batch updates- Since:
- 1.2
- See Also:
executeBatch()
-
cancel
public void cancel() throws SQLException
Cancels thisStatement
object if both the DBMS and driver support aborting an SQL statement. This method can be used by one thread to cancel a statement that is being executed by another thread.- Specified by:
cancel
in interfaceStatement
- Throws:
SQLException
- if a database access error occurs
-
clearBatch
public void clearBatch() throws SQLException
Empties thisStatement
object's current list of SQL commands.NOTE: This method is optional.
- Specified by:
clearBatch
in interfaceStatement
- Throws:
SQLException
- if a database access error occurs or the driver does not support batch updates- Since:
- 1.2
- See Also:
addBatch()
-
clearWarnings
public void clearWarnings() throws SQLException
Clears all the warnings reported on thisStatement
object. After a call to this method, the methodgetWarnings
will returnnull
until a new warning is reported for thisStatement
object.- Specified by:
clearWarnings
in interfaceStatement
- Throws:
SQLException
- if a database access error occurs
-
execute
public boolean execute(String sql) throws SQLException
Executes the given SQL statement, which may return multiple results. 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 methodsgetResultSet
orgetUpdateCount
to retrieve the result, andgetMoreResults
to move to any subsequent result(s).- Specified by:
execute
in interfaceStatement
- Parameters:
sql
- any SQL statement- Returns:
true
if the first result is aResultSet
object;false
if it is an update count or there are no results- Throws:
SQLException
- if a database access error occurs- See Also:
getResultSet()
,getUpdateCount()
,getMoreResults()
-
execute
public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
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. The driver will ignore this signal if the SQL statement is not anINSERT
statement.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 methodsgetResultSet
orgetUpdateCount
to retrieve the result, andgetMoreResults
to move to any subsequent result(s).- Specified by:
execute
in interfaceStatement
- Parameters:
sql
- any SQL statementautoGeneratedKeys
- a constant indicating whether auto-generated keys should be made available for retrieval using the methodgetGeneratedKeys
; one of the following constants:Statement.RETURN_GENERATED_KEYS
orStatement.NO_GENERATED_KEYS
- Returns:
true
if the first result is aResultSet
object;false
if it is an update count or there are no results- Throws:
SQLException
- if a database access error occurs or the second parameter supplied to this method is notStatement.RETURN_GENERATED_KEYS
orStatement.NO_GENERATED_KEYS
.- Since:
- 1.4
- See Also:
getResultSet()
,getUpdateCount()
,getMoreResults()
,getGeneratedKeys()
-
execute
public boolean execute(String sql, int[] columnIndexes) throws SQLException
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. This array contains the indexes of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the given SQL statement is not anINSERT
statement.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 methodsgetResultSet
orgetUpdateCount
to retrieve the result, andgetMoreResults
to move to any subsequent result(s).- Specified by:
execute
in interfaceStatement
- Parameters:
sql
- any SQL statementcolumnIndexes
- an array of the indexes of the columns in the inserted row that should be made available for retrieval by a call to the methodgetGeneratedKeys
- Returns:
true
if the first result is aResultSet
object;false
if it is an update count or there are no results- Throws:
SQLException
- if a database access error occurs or the elements in theint
array passed to this method are not valid column indexes- Since:
- 1.4
- See Also:
getResultSet()
,getUpdateCount()
,getMoreResults()
-
execute
public boolean execute(String sql, String[] columnNames) throws SQLException
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. This array contains the names of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the given SQL statement is not anINSERT
statement.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 methodsgetResultSet
orgetUpdateCount
to retrieve the result, andgetMoreResults
to move to any subsequent result(s).- Specified by:
execute
in interfaceStatement
- Parameters:
sql
- any SQL statementcolumnNames
- an array of the names of the columns in the inserted row that should be made available for retrieval by a call to the methodgetGeneratedKeys
- Returns:
true
if the next result is aResultSet
object;false
if it is an update count or there are no more results- Throws:
SQLException
- if a database access error occurs or the elements of theString
array passed to this method are not valid column names- Since:
- 1.4
- See Also:
getResultSet()
,getUpdateCount()
,getMoreResults()
,getGeneratedKeys()
-
executeBatch
public int[] executeBatch() throws SQLException
Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts. Theint
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 methodexecuteBatch
may be one of the following:- A number greater than or equal to zero -- indicates that the command was processed successfully and is an update count giving the number of rows in the database that were affected by the command's execution
- A value of
SUCCESS_NO_INFO
-- indicates that the command was processed successfully but that the number of rows affected is unknownIf 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 methodBatchUpdateException.getUpdateCounts
will contain as many elements as there are commands in the batch, and at least one of the elements will be the following: - A value of
EXECUTE_FAILED
-- 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.- Specified by:
executeBatch
in interfaceStatement
- Returns:
- an array of update counts containing one element for each command in the batch. The elements of the array are ordered according to the order in which commands were added to the batch.
- Throws:
SQLException
- if a database access error occurs or the driver does not support batch statements. ThrowsBatchUpdateException
(a subclass ofSQLException
) if one of the commands sent to the database fails to execute properly or attempts to return a result set.- Since:
- 1.3
-
executeQuery
public ResultSet executeQuery(String sql) throws SQLException
Executes the given SQL statement, which returns a singleResultSet
object.- Specified by:
executeQuery
in interfaceStatement
- Parameters:
sql
- an SQL statement to be sent to the database, typically a static SQLSELECT
statement- Returns:
- a
ResultSet
object that contains the data produced by the given query; nevernull
- Throws:
SQLException
- if a database access error occurs or the given SQL statement produces anything other than a singleResultSet
object
-
executeUpdate
public int executeUpdate(String sql) throws SQLException
Executes the given SQL statement, which may be anINSERT
,UPDATE
, orDELETE
statement or an SQL statement that returns nothing, such as an SQL DDL statement.- Specified by:
executeUpdate
in interfaceStatement
- Parameters:
sql
- an SQLINSERT
,UPDATE
orDELETE
statement or an SQL statement that returns nothing- Returns:
- either the row count for
INSERT
,UPDATE
orDELETE
statements, or0
for SQL statements that return nothing - Throws:
SQLException
- if a database access error occurs or the given SQL statement produces aResultSet
object
-
executeUpdate
public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Executes the given SQL statement and signals the driver with the given flag about whether the auto-generated keys produced by thisStatement
object should be made available for retrieval.- Specified by:
executeUpdate
in interfaceStatement
- Parameters:
sql
- must be an SQLINSERT
,UPDATE
orDELETE
statement or an SQL statement that returns nothingautoGeneratedKeys
- a flag indicating whether auto-generated keys should be made available for retrieval; one of the following constants:Statement.RETURN_GENERATED_KEYS
Statement.NO_GENERATED_KEYS
- Returns:
- either the row count for
INSERT
,UPDATE
orDELETE
statements, or0
for SQL statements that return nothing - Throws:
SQLException
- if a database access error occurs, the given SQL statement returns aResultSet
object, or the given constant is not one of those allowed- Since:
- 1.4
-
executeUpdate
public int executeUpdate(String sql, int[] columnIndexes) throws SQLException
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. The driver will ignore the array if the SQL statement is not anINSERT
statement.- Specified by:
executeUpdate
in interfaceStatement
- Parameters:
sql
- an SQLINSERT
,UPDATE
orDELETE
statement or an SQL statement that returns nothing, such as an SQL DDL statementcolumnIndexes
- an array of column indexes indicating the columns that should be returned from the inserted row- Returns:
- either the row count for
INSERT
,UPDATE
, orDELETE
statements, or 0 for SQL statements that return nothing - Throws:
SQLException
- if a database access error occurs, the SQL statement returns aResultSet
object, or the second argument supplied to this method is not anint
array whose elements are valid column indexes- Since:
- 1.4
-
executeUpdate
public int executeUpdate(String sql, String[] columnNames) throws SQLException
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. The driver will ignore the array if the SQL statement is not anINSERT
statement.- Specified by:
executeUpdate
in interfaceStatement
- Parameters:
sql
- an SQLINSERT
,UPDATE
orDELETE
statement or an SQL statement that returns nothingcolumnNames
- an array of the names of the columns that should be returned from the inserted row- Returns:
- either the row count for
INSERT
,UPDATE
, orDELETE
statements, or 0 for SQL statements that return nothing - Throws:
SQLException
- if a database access error occurs, the SQL statement returns aResultSet
object, or the second argument supplied to this method is not aString
array whose elements are valid column names- Since:
- 1.4
-
getConnection
public Connection getConnection() throws SQLException
Retrieves theConnection
object that produced thisStatement
object.- Specified by:
getConnection
in interfaceStatement
- Returns:
- the connection that produced this statement
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
getFetchDirection
public int getFetchDirection() throws SQLException
Retrieves the direction for fetching rows from database tables that is the default for result sets generated from thisStatement
object. If thisStatement
object has not set a fetch direction by calling the methodsetFetchDirection
, the return value is implementation-specific.- Specified by:
getFetchDirection
in interfaceStatement
- Returns:
- the default fetch direction for result sets generated
from this
Statement
object - Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
- See Also:
setFetchDirection(int)
-
getFetchSize
public int getFetchSize() throws SQLException
Retrieves the number of result set rows that is the default fetch size forResultSet
objects generated from thisStatement
object. If thisStatement
object has not set a fetch size by calling the methodsetFetchSize
, the return value is implementation-specific.- Specified by:
getFetchSize
in interfaceStatement
- Returns:
- the default fetch size for result sets generated
from this
Statement
object - Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
- See Also:
setFetchSize(int)
-
getGeneratedKeys
public ResultSet getGeneratedKeys() throws SQLException
Retrieves any auto-generated keys created as a result of executing thisStatement
object. If thisStatement
object did not generate any keys, an emptyResultSet
object is returned.- Specified by:
getGeneratedKeys
in interfaceStatement
- Returns:
- a
ResultSet
object containing the auto-generated key(s) generated by the execution of thisStatement
object - Throws:
SQLException
- if a database access error occurs- Since:
- 1.4
-
getMaxFieldSize
public int getMaxFieldSize() throws SQLException
Retrieves the maximum number of bytes that can be returned for character and binary column values in aResultSet
object produced by thisStatement
object. This limit applies only toBINARY
,VARBINARY
,LONGVARBINARY
,CHAR
,VARCHAR
, andLONGVARCHAR
columns. If the limit is exceeded, the excess data is silently discarded.- Specified by:
getMaxFieldSize
in interfaceStatement
- Returns:
- the current column size limit for columns storing character and binary values; zero means there is no limit
- Throws:
SQLException
- if a database access error occurs- See Also:
setMaxFieldSize(int)
-
getMaxRows
public int getMaxRows() throws SQLException
Retrieves the maximum number of rows that aResultSet
object produced by thisStatement
object can contain. If this limit is exceeded, the excess rows are silently dropped.- Specified by:
getMaxRows
in interfaceStatement
- Returns:
- the current maximum number of rows for a
ResultSet
object produced by thisStatement
object; zero means there is no limit - Throws:
SQLException
- if a database access error occurs- See Also:
setMaxRows(int)
-
getMoreResults
public boolean getMoreResults() throws SQLException
Moves to thisStatement
object's next result, returnstrue
if it is aResultSet
object, and implicitly closes any currentResultSet
object(s) obtained with the methodgetResultSet
.- Specified by:
getMoreResults
in interfaceStatement
- Returns:
true
if the next result is aResultSet
object;false
if it is an update count or there are no more results- Throws:
SQLException
- if a database access error occurs- See Also:
execute()
-
getMoreResults
public boolean getMoreResults(int current) throws SQLException
Moves to thisStatement
object's next result, deals with any currentResultSet
object(s) according to the instructions specified by the given flag, and returnstrue
if the next result is aResultSet
object.- Specified by:
getMoreResults
in interfaceStatement
- Parameters:
current
- one of the followingStatement
constants indicating what should happen to currentResultSet
objects obtained using the methodgetResultSet
:Statement.CLOSE_CURRENT_RESULT
,Statement.KEEP_CURRENT_RESULT
, orStatement.CLOSE_ALL_RESULTS
- Returns:
true
if the next result is aResultSet
object;false
if it is an update count or there are no more results- Throws:
SQLException
- if a database access error occurs or the argument supplied is not one of the following:Statement.CLOSE_CURRENT_RESULT
,Statement.KEEP_CURRENT_RESULT
, orStatement.CLOSE_ALL_RESULTS
- Since:
- 1.4
- See Also:
execute()
-
getQueryTimeout
public int getQueryTimeout() throws SQLException
Retrieves the number of seconds the driver will wait for aStatement
object to execute. If the limit is exceeded, aSQLException
is thrown.- Specified by:
getQueryTimeout
in interfaceStatement
- Returns:
- the current query timeout limit in seconds; zero means there is no limit
- Throws:
SQLException
- if a database access error occurs- See Also:
setQueryTimeout(int)
-
getResultSet
public ResultSet getResultSet() throws SQLException
Retrieves the current result as aResultSet
object. This method should be called only once per result.- Specified by:
getResultSet
in interfaceStatement
- Returns:
- the current result as a
ResultSet
object ornull
if the result is an update count or there are no more results - Throws:
SQLException
- if a database access error occurs- See Also:
execute()
-
getResultSetConcurrency
public int getResultSetConcurrency() throws SQLException
Retrieves the result set concurrency forResultSet
objects generated by thisStatement
object.- Specified by:
getResultSetConcurrency
in interfaceStatement
- Returns:
- either
ResultSet.CONCUR_READ_ONLY
orResultSet.CONCUR_UPDATABLE
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
getResultSetHoldability
public int getResultSetHoldability() throws SQLException
Retrieves the result set holdability forResultSet
objects generated by thisStatement
object.- Specified by:
getResultSetHoldability
in interfaceStatement
- Returns:
- either
ResultSet.HOLD_CURSORS_OVER_COMMIT
orResultSet.CLOSE_CURSORS_AT_COMMIT
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.4
-
getResultSetType
public int getResultSetType() throws SQLException
Retrieves the result set type forResultSet
objects generated by thisStatement
object.- Specified by:
getResultSetType
in interfaceStatement
- Returns:
- one of
ResultSet.TYPE_FORWARD_ONLY
,ResultSet.TYPE_SCROLL_INSENSITIVE
, orResultSet.TYPE_SCROLL_SENSITIVE
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.2
-
getUpdateCount
public int getUpdateCount() throws SQLException
Retrieves the current result as an update count; if the result is aResultSet
object or there are no more results, -1 is returned. This method should be called only once per result.- Specified by:
getUpdateCount
in interfaceStatement
- Returns:
- the current result as an update count; -1 if the current result is a
ResultSet
object or there are no more results - Throws:
SQLException
- if a database access error occurs- See Also:
execute()
-
getWarnings
public SQLWarning getWarnings() throws SQLException
Retrieves the first warning reported by calls on thisStatement
object. SubsequentStatement
object warnings will be chained to thisSQLWarning
object.The warning chain is automatically cleared each time a statement is (re)executed. This method may not be called on a closed
Statement
object; doing so will cause anSQLException
to be thrown.Note: If you are processing a
ResultSet
object, any warnings associated with reads on thatResultSet
object will be chained on it rather than on theStatement
object that produced it.- Specified by:
getWarnings
in interfaceStatement
- Returns:
- the first
SQLWarning
object ornull
if there are no warnings - Throws:
SQLException
- if a database access error occurs or this method is called on a closed statement
-
setCursorName
public void setCursorName(String name) throws SQLException
Sets the SQL cursor name to the givenString
, which will be used by subsequentStatement
objectexecute
methods. This name can then be used in SQL positioned update or delete statements to identify the current row in theResultSet
object generated by this statement. If the database does not support positioned update/delete, this method is a noop. To insure that a cursor has the proper isolation level to support updates, the cursor'sSELECT
statement should have the formSELECT FOR UPDATE
. IfFOR UPDATE
is not present, positioned updates may fail.Note: By definition, the execution of positioned updates and deletes must be done by a different
Statement
object than the one that generated theResultSet
object being used for positioning. Also, cursor names must be unique within a connection.- Specified by:
setCursorName
in interfaceStatement
- Parameters:
name
- the new cursor name, which must be unique within a connection- Throws:
SQLException
- if a database access error occurs
-
setEscapeProcessing
public void setEscapeProcessing(boolean enable) throws SQLException
Sets escape processing on or off. If escape scanning is on (the default), the driver will do escape substitution before sending the SQL statement to the database. Note: Since prepared statements have usually been parsed prior to making this call, disabling escape processing forPreparedStatements
objects will have no effect.- Specified by:
setEscapeProcessing
in interfaceStatement
- Parameters:
enable
-true
to enable escape processing;false
to disable it- Throws:
SQLException
- if a database access error occurs
-
setFetchDirection
public void setFetchDirection(int direction) throws SQLException
Gives the driver a hint as to the direction in which rows will be processed inResultSet
objects created using thisStatement
object. The default value isResultSet.FETCH_FORWARD
.Note that this method sets the default fetch direction for result sets generated by this
Statement
object. Each result set has its own methods for getting and setting its own fetch direction.- Specified by:
setFetchDirection
in interfaceStatement
- Parameters:
direction
- the initial direction for processing rows- Throws:
SQLException
- if a database access error occurs or the given direction is not one ofResultSet.FETCH_FORWARD
,ResultSet.FETCH_REVERSE
, orResultSet.FETCH_UNKNOWN
- Since:
- 1.2
- See Also:
getFetchDirection()
-
setFetchSize
public void setFetchSize(int rows) throws SQLException
Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed. The number of rows specified affects only result sets created using this statement. If the value specified is zero, then the hint is ignored. The default value is zero.- Specified by:
setFetchSize
in interfaceStatement
- Parameters:
rows
- the number of rows to fetch- Throws:
SQLException
- if a database access error occurs, or the condition 0 <=rows
<=this.getMaxRows()
is not satisfied.- Since:
- 1.2
- See Also:
getFetchSize()
-
setMaxFieldSize
public void setMaxFieldSize(int max) throws SQLException
Sets the limit for the maximum number of bytes in aResultSet
column storing character or binary values to the given number of bytes. This limit applies only toBINARY
,VARBINARY
,LONGVARBINARY
,CHAR
,VARCHAR
, andLONGVARCHAR
fields. If the limit is exceeded, the excess data is silently discarded. For maximum portability, use values greater than 256.- Specified by:
setMaxFieldSize
in interfaceStatement
- Parameters:
max
- the new column size limit in bytes; zero means there is no limit- Throws:
SQLException
- if a database access error occurs or the condition max >= 0 is not satisfied- See Also:
getMaxFieldSize()
-
setMaxRows
public void setMaxRows(int max) throws SQLException
Sets the limit for the maximum number of rows that anyResultSet
object can contain to the given number. If the limit is exceeded, the excess rows are silently dropped.- Specified by:
setMaxRows
in interfaceStatement
- Parameters:
max
- the new max rows limit; zero means there is no limit- Throws:
SQLException
- if a database access error occurs or the condition max >= 0 is not satisfied- See Also:
getMaxRows()
-
setQueryTimeout
public void setQueryTimeout(int seconds) throws SQLException
Sets the number of seconds the driver will wait for aStatement
object to execute to the given number of seconds. If the limit is exceeded, anSQLException
is thrown.- Specified by:
setQueryTimeout
in interfaceStatement
- Parameters:
seconds
- the new query timeout limit in seconds; zero means there is no limit- Throws:
SQLException
- if a database access error occurs or the condition seconds >= 0 is not satisfied- See Also:
getQueryTimeout()
-
isClosed
public boolean isClosed() throws SQLException
- Specified by:
isClosed
in interfaceStatement
- Throws:
SQLException
- See Also:
Statement.isClosed()
-
setPoolable
public void setPoolable(boolean poolable) throws SQLException
- Specified by:
setPoolable
in interfaceStatement
- Throws:
SQLException
- See Also:
Statement.setPoolable(boolean)
-
isPoolable
public boolean isPoolable() throws SQLException
- Specified by:
isPoolable
in interfaceStatement
- Throws:
SQLException
- See Also:
Statement.isPoolable()
-
closeOnCompletion
public void closeOnCompletion() throws SQLException
- Specified by:
closeOnCompletion
in interfaceStatement
- Throws:
SQLException
- See Also:
Statement.closeOnCompletion()
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws SQLException
- Specified by:
isCloseOnCompletion
in interfaceStatement
- Throws:
SQLException
- See Also:
Statement.isCloseOnCompletion()
-
unwrap
public <T> T unwrap(Class<T> iface) throws SQLException
- Specified by:
unwrap
in interfaceWrapper
- Throws:
SQLException
-
isWrapperFor
public boolean isWrapperFor(Class<?> iface) throws SQLException
- Specified by:
isWrapperFor
in interfaceWrapper
- Throws:
SQLException
- See Also:
Wrapper.isWrapperFor(Class)
-
setRowId
public void setRowId(int parameterIndex, RowId x) throws SQLException
- Specified by:
setRowId
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setRowId(int, RowId)
-
setNString
public void setNString(int parameterIndex, String value) throws SQLException
- Specified by:
setNString
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setNString(int, String)
-
setNCharacterStream
public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
- Specified by:
setNCharacterStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setNCharacterStream(int, Reader, long)
-
setNClob
public void setNClob(int parameterIndex, NClob value) throws SQLException
- Specified by:
setNClob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setNClob(int, Reader)
-
setClob
public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
- Specified by:
setClob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setClob(int, Reader, long)
-
setBlob
public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
- Specified by:
setBlob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setBlob(int, InputStream, long)
-
setNClob
public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
- Specified by:
setNClob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setNClob(int, Reader, long)
-
setSQLXML
public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
- Specified by:
setSQLXML
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setSQLXML(int, SQLXML)
-
setAsciiStream
public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
- Specified by:
setAsciiStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setAsciiStream(int, InputStream, long)
-
setBinaryStream
public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
- Specified by:
setBinaryStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setBinaryStream(int, InputStream, long)
-
setCharacterStream
public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
- Specified by:
setCharacterStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setCharacterStream(int, Reader, long)
-
setAsciiStream
public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
- Specified by:
setAsciiStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setAsciiStream(int, InputStream)
-
setBinaryStream
public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
- Specified by:
setBinaryStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setBinaryStream(int, InputStream)
-
setCharacterStream
public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
- Specified by:
setCharacterStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setCharacterStream(int, Reader)
-
setNCharacterStream
public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
- Specified by:
setNCharacterStream
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setNCharacterStream(int, Reader)
-
setClob
public void setClob(int parameterIndex, Reader reader) throws SQLException
- Specified by:
setClob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setClob(int, Clob)
-
setBlob
public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
- Specified by:
setBlob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setBlob(int, InputStream)
-
setNClob
public void setNClob(int parameterIndex, Reader reader) throws SQLException
- Specified by:
setNClob
in interfacePreparedStatement
- Throws:
SQLException
- See Also:
PreparedStatement.setNClob(int, Reader)
-
-