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 PreparedStatementpreparedStatement-
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 voidaddBatch()Adds a set of parameters to thisPreparedStatementobject's batch of commands.voidclearParameters()Clears the current parameter values immediately.voidclose()Releases thisStatementobject's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.voidcloseOnCompletion()booleanexecute()Executes the SQL statement in thisPreparedStatementobject, which may be any kind of SQL statement.intexecuteUpdate()Executes the SQL statement in thisPreparedStatementobject, which must be an SQLINSERT,UPDATEorDELETEstatement; or an SQL statement that returns nothing, such as a DDL statement.booleangetCached()ResultSetMetaDatagetMetaData()Retrieves aResultSetMetaDataobject that contains information about the columns of theResultSetobject that will be returned when thisPreparedStatementobject is executed.ParameterMetaDatagetParameterMetaData()Retrieves the number, types and properties of thisPreparedStatementobject's parameters.voidincrementResultSetReferenceCount()booleanisBusy()booleanisCloseOnCompletion()booleanisValid()voidresultSetClosed()Used to perform operations like statement closeOnCompletion when the result set object is closed.voidsetArray(int i, Array x)Sets the designated parameter to the givenArrayobject.voidsetAsciiStream(int parameterIndex, InputStream x, int length)Sets the designated parameter to the given input stream, which will have the specified number of bytes.voidsetBigDecimal(int parameterIndex, BigDecimal x)Sets the designated parameter to the givenjava.math.BigDecimalvalue.voidsetBinaryStream(int parameterIndex, InputStream x, int length)Sets the designated parameter to the given input stream, which will have the specified number of bytes.voidsetBlob(int i, Blob x)Sets the designated parameter to the givenBlobobject.voidsetBoolean(int parameterIndex, boolean x)Sets the designated parameter to the given Javabooleanvalue.voidsetBusy(boolean busy)voidsetByte(int parameterIndex, byte x)Sets the designated parameter to the given Javabytevalue.voidsetBytes(int parameterIndex, byte[] x)Sets the designated parameter to the given Java array of bytes.voidsetCached(boolean cached)voidsetCharacterStream(int parameterIndex, Reader reader, int length)Sets the designated parameter to the givenReaderobject, which is the given number of characters long.voidsetClob(int i, Clob x)Sets the designated parameter to the givenClobobject.voidsetDate(int parameterIndex, Date x)Sets the designated parameter to the givenjava.sql.Datevalue.voidsetDate(int parameterIndex, Date x, Calendar cal)Sets the designated parameter to the givenjava.sql.Datevalue, using the givenCalendarobject.voidsetDouble(int parameterIndex, double x)Sets the designated parameter to the given Javadoublevalue.voidsetFetchDirection(int direction)Gives the driver a hint as to the direction in which rows will be processed inResultSetobjects created using thisStatementobject.voidsetFetchSize(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.voidsetFloat(int parameterIndex, float x)Sets the designated parameter to the given Javafloatvalue.voidsetInt(int parameterIndex, int x)Sets the designated parameter to the given Javaintvalue.voidsetLong(int parameterIndex, long x)Sets the designated parameter to the given Javalongvalue.voidsetMaxFieldSize(int max)Sets the limit for the maximum number of bytes in aResultSetcolumn storing character or binary values to the given number of bytes.voidsetMaxRows(int max)Sets the limit for the maximum number of rows that anyResultSetobject can contain to the given number.voidsetNull(int parameterIndex, int sqlType)Sets the designated parameter to SQLNULL.voidsetNull(int paramIndex, int sqlType, String typeName)Sets the designated parameter to SQLNULL.voidsetObject(int parameterIndex, Object x)Sets the value of the designated parameter using the given object.voidsetObject(int parameterIndex, Object x, int targetSqlType)Sets the value of the designated parameter with the given object.voidsetObject(int parameterIndex, Object x, int targetSqlType, int scale)Sets the value of the designated parameter with the given object.voidsetQueryTimeout(int seconds)Sets the number of seconds the driver will wait for aStatementobject to execute to the given number of seconds.voidsetRef(int i, Ref x)Sets the designated parameter to the givenREF(<structured-type>)value.voidsetShort(int parameterIndex, short x)Sets the designated parameter to the given Javashortvalue.voidsetString(int parameterIndex, String x)Sets the designated parameter to the given JavaStringvalue.voidsetTime(int parameterIndex, Time x)Sets the designated parameter to the givenjava.sql.Timevalue.voidsetTime(int parameterIndex, Time x, Calendar cal)Sets the designated parameter to the givenjava.sql.Timevalue, using the givenCalendarobject.voidsetTimestamp(int parameterIndex, Timestamp x)Sets the designated parameter to the givenjava.sql.Timestampvalue.voidsetTimestamp(int parameterIndex, Timestamp x, Calendar cal)Sets the designated parameter to the givenjava.sql.Timestampvalue, using the givenCalendarobject.voidsetUnicodeStream(int parameterIndex, InputStream x, int length)Deprecated.voidsetURL(int parameterIndex, URL x)Sets the designated parameter to the givenjava.net.URLvalue.voidsetValid(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 SQLExceptionExecutes the SQL statement in thisPreparedStatementobject, which must be an SQLINSERT,UPDATEorDELETEstatement; or an SQL statement that returns nothing, such as a DDL statement.- Specified by:
executeUpdatein interfacePreparedStatement- Returns:
- either (1) the row count for
INSERT,UPDATE, orDELETEstatements or (2) 0 for SQL statements that return nothing - Throws:
SQLException- if a database access error occurs or the SQL statement returns aResultSetobject
-
setNull
public void setNull(int parameterIndex, int sqlType) throws SQLExceptionSets the designated parameter to SQLNULL.Note: You must specify the parameter's SQL type.
- Specified by:
setNullin 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 SQLExceptionSets the designated parameter to the given Javabooleanvalue. The driver converts this to an SQLBITvalue when it sends it to the database.- Specified by:
setBooleanin 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 SQLExceptionSets the designated parameter to the given Javabytevalue. The driver converts this to an SQLTINYINTvalue when it sends it to the database.- Specified by:
setBytein 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 SQLExceptionSets the designated parameter to the given Javashortvalue. The driver converts this to an SQLSMALLINTvalue when it sends it to the database.- Specified by:
setShortin 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 SQLExceptionSets the designated parameter to the given Javaintvalue. The driver converts this to an SQLINTEGERvalue when it sends it to the database.- Specified by:
setIntin 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 SQLExceptionSets the designated parameter to the given Javalongvalue. The driver converts this to an SQLBIGINTvalue when it sends it to the database.- Specified by:
setLongin 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 SQLExceptionSets the designated parameter to the given Javafloatvalue. The driver converts this to an SQLFLOATvalue when it sends it to the database.- Specified by:
setFloatin 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 SQLExceptionSets the designated parameter to the given Javadoublevalue. The driver converts this to an SQLDOUBLEvalue when it sends it to the database.- Specified by:
setDoublein 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 SQLExceptionSets the designated parameter to the givenjava.math.BigDecimalvalue. The driver converts this to an SQLNUMERICvalue when it sends it to the database.- Specified by:
setBigDecimalin 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 SQLExceptionSets the designated parameter to the given JavaStringvalue. The driver converts this to an SQLVARCHARorLONGVARCHARvalue (depending on the argument's size relative to the driver's limits onVARCHARvalues) when it sends it to the database.- Specified by:
setStringin 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 SQLExceptionSets the designated parameter to the given Java array of bytes. The driver converts this to an SQLVARBINARYorLONGVARBINARY(depending on the argument's size relative to the driver's limits onVARBINARYvalues) when it sends it to the database.- Specified by:
setBytesin 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 SQLExceptionSets the designated parameter to the givenjava.sql.Datevalue. The driver converts this to an SQLDATEvalue when it sends it to the database.- Specified by:
setDatein 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 SQLExceptionSets the designated parameter to the givenjava.sql.Timevalue. The driver converts this to an SQLTIMEvalue when it sends it to the database.- Specified by:
setTimein 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 SQLExceptionSets the designated parameter to the givenjava.sql.Timestampvalue. The driver converts this to an SQLTIMESTAMPvalue when it sends it to the database.- Specified by:
setTimestampin 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 SQLExceptionSets 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 aLONGVARCHARparameter, 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:
setAsciiStreamin 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 aLONGVARCHARparameter, it may be more practical to send it via ajava.io.InputStreamobject. 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:
setUnicodeStreamin interfacePreparedStatement- Parameters:
parameterIndex- the first parameter is 1, the second is 2, ...x- ajava.io.InputStreamobject 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 SQLExceptionSets 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 aLONGVARBINARYparameter, it may be more practical to send it via ajava.io.InputStreamobject. 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:
setBinaryStreamin 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 SQLExceptionClears 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:
clearParametersin interfacePreparedStatement- Throws:
SQLException- if a database access error occurs
-
setObject
public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLExceptionSets the value of the designated parameter with the given object. The second argument must be an object type; for integral values, the
java.langequivalent 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.writeSQLto 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:
setObjectin 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 SQLExceptionSets the value of the designated parameter with the given object. This method is like the methodsetObjectabove, except that it assumes a scale of zero.- Specified by:
setObjectin 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 SQLExceptionSets the value of the designated parameter using the given object. The second parameter must be of type
Object; therefore, thejava.langequivalent objects should be used for built-in types.The JDBC specification specifies a standard mapping from Java
Objecttypes 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.writeSQLto 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:
setObjectin 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 SQLExceptionExecutes the SQL statement in thisPreparedStatementobject, which may be any kind of SQL statement. Some prepared statements return multiple results; theexecutemethod handles these complex statements as well as the simpler form of statements handled by the methodsexecuteQueryandexecuteUpdate. Theexecutemethod returns abooleanto indicate the form of the first result. You must call either the methodgetResultSetorgetUpdateCountto retrieve the result; you must callgetMoreResultsto move to any subsequent result(s).- Specified by:
executein interfacePreparedStatement- Returns:
trueif the first result is aResultSetobject;falseif 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 SQLExceptionAdds a set of parameters to thisPreparedStatementobject's batch of commands.- Specified by:
addBatchin 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 SQLExceptionSets the designated parameter to the givenReaderobject, which is the given number of characters long. When a very large UNICODE value is input to aLONGVARCHARparameter, it may be more practical to send it via ajava.io.Readerobject. 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:
setCharacterStreamin interfacePreparedStatement- Parameters:
parameterIndex- the first parameter is 1, the second is 2, ...reader- thejava.io.Readerobject 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 SQLExceptionSets the designated parameter to the givenREF(<structured-type>)value. The driver converts this to an SQLREFvalue when it sends it to the database.- Specified by:
setRefin interfacePreparedStatement- Parameters:
i- the first parameter is 1, the second is 2, ...x- an SQLREFvalue- Throws:
SQLException- if a database access error occurs- Since:
- 1.2
-
setBlob
public void setBlob(int i, Blob x) throws SQLExceptionSets the designated parameter to the givenBlobobject. The driver converts this to an SQLBLOBvalue when it sends it to the database.- Specified by:
setBlobin interfacePreparedStatement- Parameters:
i- the first parameter is 1, the second is 2, ...x- aBlobobject that maps an SQLBLOBvalue- Throws:
SQLException- if a database access error occurs- Since:
- 1.2
-
setClob
public void setClob(int i, Clob x) throws SQLExceptionSets the designated parameter to the givenClobobject. The driver converts this to an SQLCLOBvalue when it sends it to the database.- Specified by:
setClobin interfacePreparedStatement- Parameters:
i- the first parameter is 1, the second is 2, ...x- aClobobject that maps an SQLCLOBvalue- Throws:
SQLException- if a database access error occurs- Since:
- 1.2
-
setArray
public void setArray(int i, Array x) throws SQLExceptionSets the designated parameter to the givenArrayobject. The driver converts this to an SQLARRAYvalue when it sends it to the database.- Specified by:
setArrayin interfacePreparedStatement- Parameters:
i- the first parameter is 1, the second is 2, ...x- anArrayobject that maps an SQLARRAYvalue- Throws:
SQLException- if a database access error occurs- Since:
- 1.2
-
getMetaData
public ResultSetMetaData getMetaData() throws SQLException
Retrieves aResultSetMetaDataobject that contains information about the columns of theResultSetobject that will be returned when thisPreparedStatementobject is executed. Because aPreparedStatementobject is precompiled, it is possible to know about theResultSetobject that it will return without having to execute it. Consequently, it is possible to invoke the methodgetMetaDataon aPreparedStatementobject rather than waiting to execute it and then invoking theResultSet.getMetaDatamethod on theResultSetobject that is returned. NOTE: Using this method may be expensive for some drivers due to the lack of underlying DBMS support.- Specified by:
getMetaDatain interfacePreparedStatement- Returns:
- the description of a
ResultSetobject's columns ornullif the driver cannot return aResultSetMetaDataobject - Throws:
SQLException- if a database access error occurs- Since:
- 1.2
-
setDate
public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLExceptionSets the designated parameter to the givenjava.sql.Datevalue, using the givenCalendarobject. The driver uses theCalendarobject to construct an SQLDATEvalue, which the driver then sends to the database. With aCalendarobject, the driver can calculate the date taking into account a custom timezone. If noCalendarobject is specified, the driver uses the default timezone, which is that of the virtual machine running the application.- Specified by:
setDatein interfacePreparedStatement- Parameters:
parameterIndex- the first parameter is 1, the second is 2, ...x- the parameter valuecal- theCalendarobject 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 SQLExceptionSets the designated parameter to the givenjava.sql.Timevalue, using the givenCalendarobject. The driver uses theCalendarobject to construct an SQLTIMEvalue, which the driver then sends to the database. With aCalendarobject, the driver can calculate the time taking into account a custom timezone. If noCalendarobject is specified, the driver uses the default timezone, which is that of the virtual machine running the application.- Specified by:
setTimein interfacePreparedStatement- Parameters:
parameterIndex- the first parameter is 1, the second is 2, ...x- the parameter valuecal- theCalendarobject 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 SQLExceptionSets the designated parameter to the givenjava.sql.Timestampvalue, using the givenCalendarobject. The driver uses theCalendarobject to construct an SQLTIMESTAMPvalue, which the driver then sends to the database. With aCalendarobject, the driver can calculate the timestamp taking into account a custom timezone. If noCalendarobject is specified, the driver uses the default timezone, which is that of the virtual machine running the application.- Specified by:
setTimestampin interfacePreparedStatement- Parameters:
parameterIndex- the first parameter is 1, the second is 2, ...x- the parameter valuecal- theCalendarobject 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 SQLExceptionSets the designated parameter to SQLNULL. This version of the methodsetNullshould 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:
setNullin interfacePreparedStatement- Parameters:
paramIndex- the first parameter is 1, the second is 2, ...sqlType- a value fromjava.sql.TypestypeName- 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 SQLExceptionSets the designated parameter to the givenjava.net.URLvalue. The driver converts this to an SQLDATALINKvalue when it sends it to the database.- Specified by:
setURLin interfacePreparedStatement- Parameters:
parameterIndex- the first parameter is 1, the second is 2, ...x- thejava.net.URLobject 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 thisPreparedStatementobject's parameters.- Specified by:
getParameterMetaDatain interfacePreparedStatement- Returns:
- a
ParameterMetaDataobject that contains information about the number, types and properties of thisPreparedStatementobject'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 SQLExceptionDescription copied from class:StatementWrapperReleases thisStatementobject'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: Acloseon aStatementobject that is already closed has no effect.Statementobject is automatically closed when it is garbage collected. When aStatementobject is closed, its currentResultSetobject, if one exists, is also closed.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceStatement- Overrides:
closein classStatementWrapper- Throws:
SQLException- if a database access error occurs
-
closeOnCompletion
public void closeOnCompletion() throws SQLException- Specified by:
closeOnCompletionin interfaceStatement- Overrides:
closeOnCompletionin classStatementWrapper- Throws:
SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws SQLException- Specified by:
isCloseOnCompletionin interfaceStatement- Overrides:
isCloseOnCompletionin classStatementWrapper- Throws:
SQLException
-
setMaxFieldSize
public void setMaxFieldSize(int max) throws SQLExceptionDescription copied from class:StatementWrapperSets the limit for the maximum number of bytes in aResultSetcolumn storing character or binary values to the given number of bytes. This limit applies only toBINARY,VARBINARY,LONGVARBINARY,CHAR,VARCHAR, andLONGVARCHARfields. If the limit is exceeded, the excess data is silently discarded. For maximum portability, use values greater than 256.- Specified by:
setMaxFieldSizein interfaceStatement- Overrides:
setMaxFieldSizein 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 SQLExceptionDescription copied from class:StatementWrapperSets the limit for the maximum number of rows that anyResultSetobject can contain to the given number. If the limit is exceeded, the excess rows are silently dropped.- Specified by:
setMaxRowsin interfaceStatement- Overrides:
setMaxRowsin 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 SQLExceptionDescription copied from class:StatementWrapperSets the number of seconds the driver will wait for aStatementobject to execute to the given number of seconds. If the limit is exceeded, anSQLExceptionis thrown.- Specified by:
setQueryTimeoutin interfaceStatement- Overrides:
setQueryTimeoutin 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 SQLExceptionDescription copied from class:StatementWrapperGives the driver a hint as to the direction in which rows will be processed inResultSetobjects created using thisStatementobject. The default value isResultSet.FETCH_FORWARD.Note that this method sets the default fetch direction for result sets generated by this
Statementobject. Each result set has its own methods for getting and setting its own fetch direction.- Specified by:
setFetchDirectionin interfaceStatement- Overrides:
setFetchDirectionin 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 SQLExceptionDescription copied from class:StatementWrapperGives 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:
setFetchSizein interfaceStatement- Overrides:
setFetchSizein 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 SQLExceptionDescription copied from interface:ResultSetClosedEventListenerUsed to perform operations like statement closeOnCompletion when the result set object is closed.- Specified by:
resultSetClosedin interfaceResultSetClosedEventListener- Throws:
SQLException
-
-