Class PreparedStatementWrapper
- java.lang.Object
-
- com.sun.gjc.spi.base.StatementWrapper
-
- com.sun.gjc.spi.base.PreparedStatementWrapper
-
- All Implemented Interfaces:
ResultSetClosedEventListener
,StatementLeakListener
,AutoCloseable
,PreparedStatement
,Statement
,Wrapper
- Direct Known Subclasses:
CallableStatementWrapper
,PreparedStatementWrapper40
public abstract class PreparedStatementWrapper extends StatementWrapper implements PreparedStatement, ResultSetClosedEventListener
Abstract class for wrapping PreparedStatement
-
-
Field Summary
Fields Modifier and Type Field Description protected PreparedStatement
preparedStatement
-
Fields inherited from class com.sun.gjc.spi.base.StatementWrapper
_logger, connection, executor, jdbcStatement, leakDetector, resultSetCount
-
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 PreparedStatementWrapper(Connection con, PreparedStatement statement, boolean cachingEnabled)
Abstract class for wrapping PreparedStatement
-
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
clearParameters()
Clears the current parameter values immediately.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.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.boolean
getCached()
ResultSetMetaData
getMetaData()
Retrieves aResultSetMetaData
object that contains information about the columns of theResultSet
object that will be returned when thisPreparedStatement
object is executed.ParameterMetaData
getParameterMetaData()
Retrieves the number, types and properties of thisPreparedStatement
object's parameters.void
incrementResultSetReferenceCount()
boolean
isBusy()
boolean
isCloseOnCompletion()
boolean
isValid()
void
resultSetClosed()
Used to perform operations like statement closeOnCompletion when the result set object is closed.void
setArray(int i, Array x)
Sets the designated parameter to the givenArray
object.void
setAsciiStream(int parameterIndex, InputStream x, int length)
Sets the designated parameter to the given input stream, which will have the specified number of bytes.void
setBigDecimal(int parameterIndex, BigDecimal x)
Sets the designated parameter to the givenjava.math.BigDecimal
value.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
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
setBusy(boolean busy)
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
setCached(boolean cached)
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
setClob(int i, Clob x)
Sets the designated parameter to the givenClob
object.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
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
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
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
setShort(int parameterIndex, short x)
Sets the designated parameter to the given Javashort
value.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.void
setValid(boolean valid)
-
Methods inherited from class com.sun.gjc.spi.base.StatementWrapper
actualCloseOnCompletion, addBatch, cancel, clearBatch, clearWarnings, decrementResultSetCount, execute, execute, execute, execute, executeBatch, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getActualConnection, getCloseOnCompletion, getConnection, getFetchDirection, getFetchSize, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSetConcurrency, getResultSetCount, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, incrementResultSetCount, isMarkedForReclaim, markForReclaim, reclaimStatement, setCursorName, setEscapeProcessing
-
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, executeQuery, setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setCharacterStream, setCharacterStream, setClob, setClob, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setObject, setObject, setRowId, setSQLXML
-
Methods inherited from interface java.sql.Statement
addBatch, cancel, clearBatch, clearWarnings, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setLargeMaxRows, setPoolable
-
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
-
-
-
Field Detail
-
preparedStatement
protected PreparedStatement preparedStatement
-
-
Constructor Detail
-
PreparedStatementWrapper
public PreparedStatementWrapper(Connection con, PreparedStatement statement, boolean cachingEnabled) throws SQLException
Abstract class for wrapping PreparedStatement- Parameters:
con
- Connection Wrapperstatement
- PreparedStatement that is to be wrapped.cachingEnabled
- boolean that enabled/ disables caching- Throws:
SQLException
- Exception thrown from underlying statement
-
-
Method Detail
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
setUnicodeStream
@Deprecated 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
-
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
-
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
-
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 interfaceSQLData
), 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
-
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) 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 interfaceSQLData
, 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
-
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
. Theexecute
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()
-
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)
-
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
-
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
-
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
-
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
-
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
-
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 aPreparedStatement
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
-
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
-
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, 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
-
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
-
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
-
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
-
isBusy
public boolean isBusy()
-
setBusy
public void setBusy(boolean busy)
-
getCached
public boolean getCached()
-
close
public void close() throws SQLException
Description copied from class:StatementWrapper
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
Note: Aclose
on aStatement
object that is already closed has no effect.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
- Overrides:
close
in classStatementWrapper
- Throws:
SQLException
- if a database access error occurs
-
closeOnCompletion
public void closeOnCompletion() throws SQLException
- Specified by:
closeOnCompletion
in interfaceStatement
- Overrides:
closeOnCompletion
in classStatementWrapper
- Throws:
SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws SQLException
- Specified by:
isCloseOnCompletion
in interfaceStatement
- Overrides:
isCloseOnCompletion
in classStatementWrapper
- Throws:
SQLException
-
setMaxFieldSize
public void setMaxFieldSize(int max) throws SQLException
Description copied from class:StatementWrapper
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
- Overrides:
setMaxFieldSize
in classStatementWrapper
- 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:
StatementWrapper.getMaxFieldSize()
-
setMaxRows
public void setMaxRows(int max) throws SQLException
Description copied from class:StatementWrapper
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
- Overrides:
setMaxRows
in classStatementWrapper
- 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:
StatementWrapper.getMaxRows()
-
setQueryTimeout
public void setQueryTimeout(int seconds) throws SQLException
Description copied from class:StatementWrapper
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
- Overrides:
setQueryTimeout
in classStatementWrapper
- 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:
StatementWrapper.getQueryTimeout()
-
setFetchDirection
public void setFetchDirection(int direction) throws SQLException
Description copied from class:StatementWrapper
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
- Overrides:
setFetchDirection
in classStatementWrapper
- 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
- See Also:
StatementWrapper.getFetchDirection()
-
setFetchSize
public void setFetchSize(int rows) throws SQLException
Description copied from class:StatementWrapper
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
- Overrides:
setFetchSize
in classStatementWrapper
- 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.- See Also:
StatementWrapper.getFetchSize()
-
setCached
public void setCached(boolean cached)
-
isValid
public boolean isValid()
-
setValid
public void setValid(boolean valid)
-
incrementResultSetReferenceCount
public void incrementResultSetReferenceCount()
-
resultSetClosed
public void resultSetClosed() throws SQLException
Description copied from interface:ResultSetClosedEventListener
Used to perform operations like statement closeOnCompletion when the result set object is closed.- Specified by:
resultSetClosed
in interfaceResultSetClosedEventListener
- Throws:
SQLException
-
-