/** Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.** This code is free software; you can redistribute it and/or modify it* under the terms of the GNU General Public License version 2 only, as* published by the Free Software Foundation. Oracle designates this* particular file as subject to the "Classpath" exception as provided* by Oracle in the LICENSE file that accompanied this code.** This code is distributed in the hope that it will be useful, but WITHOUT* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License* version 2 for more details (a copy is included in the LICENSE file that* accompanied this code).** You should have received a copy of the GNU General Public License version* 2 along with this work; if not, write to the Free Software Foundation,* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.** Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA* or visit www.oracle.com if you need additional information or have any* questions.*/package javax.sql;import java.sql.*;import java.io.*;import java.math.*;import java.util.*;/*** The interface that adds support to the JDBC API for the* JavaBeans™ component model.* A rowset, which can be used as a JavaBeans component in* a visual Bean development environment, can be created and* configured at design time and executed at run time.* <P>* The <code>RowSet</code>* interface provides a set of JavaBeans properties that allow a <code>RowSet</code>* instance to be configured to connect to a JDBC data source and read* some data from the data source. A group of setter methods (<code>setInt</code>,* <code>setBytes</code>, <code>setString</code>, and so on)* provide a way to pass input parameters to a rowset's command property.* This command is the SQL query the rowset uses when it gets its data from* a relational database, which is generally the case.* <P>* The <code>RowSet</code>* interface supports JavaBeans events, allowing other components in an* application to be notified when an event occurs on a rowset,* such as a change in its value.** <P>The <code>RowSet</code> interface is unique in that it is intended to be* implemented using the rest of the JDBC API. In other words, a* <code>RowSet</code> implementation is a layer of software that executes "on top"* of a JDBC driver. Implementations of the <code>RowSet</code> interface can* be provided by anyone, including JDBC driver vendors who want to* provide a <code>RowSet</code> implementation as part of their JDBC products.* <P>* A <code>RowSet</code> object may make a connection with a data source and* maintain that connection throughout its life cycle, in which case it is* called a <i>connected</i> rowset. A rowset may also make a connection with* a data source, get data from it, and then close the connection. Such a rowset* is called a <i>disconnected</i> rowset. A disconnected rowset may make* changes to its data while it is disconnected and then send the changes back* to the original source of the data, but it must reestablish a connection to do so.* <P>* A disconnected rowset may have a {@code Reader} (a <code>RowSetReader</code> object)* and a writer (a <code>RowSetWriter</code> object) associated with it.* The {@code Reader} may be implemented in many different ways to populate a rowset* with data, including getting data from a non-relational data source. The* writer can also be implemented in many different ways to propagate changes* made to the rowset's data back to the underlying data source.* <P>* Rowsets are easy to use. The <code>RowSet</code> interface extends the standard* <code>java.sql.ResultSet</code> interface. The <code>RowSetMetaData</code>* interface extends the <code>java.sql.ResultSetMetaData</code> interface.* Thus, developers familiar* with the JDBC API will have to learn a minimal number of new APIs to* use rowsets. In addition, third-party software tools that work with* JDBC <code>ResultSet</code> objects will also easily be made to work with rowsets.** @since 1.4*/public interface RowSet extends ResultSet {//-----------------------------------------------------------------------// Properties//-----------------------------------------------------------------------//-----------------------------------------------------------------------// The following properties may be used to create a Connection.//-----------------------------------------------------------------------/*** Retrieves the url property this <code>RowSet</code> object will use to* create a connection if it uses the <code>DriverManager</code>* instead of a <code>DataSource</code> object to establish the connection.* The default value is <code>null</code>.** @return a string url* @exception SQLException if a database access error occurs* @see #setUrl*/String getUrl() throws SQLException;/*** Sets the URL this <code>RowSet</code> object will use when it uses the* <code>DriverManager</code> to create a connection.** Setting this property is optional. If a URL is used, a JDBC driver* that accepts the URL must be loaded before the* rowset is used to connect to a database. The rowset will use the URL* internally to create a database connection when reading or writing* data. Either a URL or a data source name is used to create a* connection, whichever was set to non null value most recently.** @param url a string value; may be <code>null</code>* @exception SQLException if a database access error occurs* @see #getUrl*/void setUrl(String url) throws SQLException;/*** Retrieves the logical name that identifies the data source for this* <code>RowSet</code> object.** @return a data source name* @see #setDataSourceName* @see #setUrl*/String getDataSourceName();/*** Sets the data source name property for this <code>RowSet</code> object to the* given <code>String</code>.* <P>* The value of the data source name property can be used to do a lookup of* a <code>DataSource</code> object that has been registered with a naming* service. After being retrieved, the <code>DataSource</code> object can be* used to create a connection to the data source that it represents.** @param name the logical name of the data source for this <code>RowSet</code>* object; may be <code>null</code>* @exception SQLException if a database access error occurs* @see #getDataSourceName*/void setDataSourceName(String name) throws SQLException;/*** Retrieves the username used to create a database connection for this* <code>RowSet</code> object.* The username property is set at run time before calling the method* <code>execute</code>. It is* not usually part of the serialized state of a <code>RowSet</code> object.** @return the username property* @see #setUsername*/String getUsername();/*** Sets the username property for this <code>RowSet</code> object to the* given <code>String</code>.** @param name a user name* @exception SQLException if a database access error occurs* @see #getUsername*/void setUsername(String name) throws SQLException;/*** Retrieves the password used to create a database connection.* The password property is set at run time before calling the method* <code>execute</code>. It is not usually part of the serialized state* of a <code>RowSet</code> object.** @return the password for making a database connection* @see #setPassword*/String getPassword();/*** Sets the database password for this <code>RowSet</code> object to* the given <code>String</code>.** @param password the password string* @exception SQLException if a database access error occurs* @see #getPassword*/void setPassword(String password) throws SQLException;/*** Retrieves the transaction isolation level set for this* <code>RowSet</code> object.** @return the transaction isolation level; one of* <code>Connection.TRANSACTION_READ_UNCOMMITTED</code>,* <code>Connection.TRANSACTION_READ_COMMITTED</code>,* <code>Connection.TRANSACTION_REPEATABLE_READ</code>, or* <code>Connection.TRANSACTION_SERIALIZABLE</code>* @see #setTransactionIsolation*/int getTransactionIsolation();/*** Sets the transaction isolation level for this <code>RowSet</code> object.** @param level the transaction isolation level; one of* <code>Connection.TRANSACTION_READ_UNCOMMITTED</code>,* <code>Connection.TRANSACTION_READ_COMMITTED</code>,* <code>Connection.TRANSACTION_REPEATABLE_READ</code>, or* <code>Connection.TRANSACTION_SERIALIZABLE</code>* @exception SQLException if a database access error occurs* @see #getTransactionIsolation*/void setTransactionIsolation(int level) throws SQLException;/*** Retrieves the <code>Map</code> object associated with this* <code>RowSet</code> object, which specifies the custom mapping* of SQL user-defined types, if any. The default is for the* type map to be empty.** @return a <code>java.util.Map</code> object containing the names of* SQL user-defined types and the Java classes to which they are* to be mapped** @exception SQLException if a database access error occurs* @see #setTypeMap*/java.util.Map<String,Class<?>> getTypeMap() throws SQLException;/*** Installs the given <code>java.util.Map</code> object as the default* type map for this <code>RowSet</code> object. This type map will be* used unless another type map is supplied as a method parameter.** @param map a <code>java.util.Map</code> object containing the names of* SQL user-defined types and the Java classes to which they are* to be mapped* @exception SQLException if a database access error occurs* @see #getTypeMap*/void setTypeMap(java.util.Map<String,Class<?>> map) throws SQLException;//-----------------------------------------------------------------------// The following properties may be used to create a Statement.//-----------------------------------------------------------------------/*** Retrieves this <code>RowSet</code> object's command property.** The command property contains a command string, which must be an SQL* query, that can be executed to fill the rowset with data.* The default value is <code>null</code>.** @return the command string; may be <code>null</code>* @see #setCommand*/String getCommand();/*** Sets this <code>RowSet</code> object's command property to the given* SQL query.** This property is optional* when a rowset gets its data from a data source that does not support* commands, such as a spreadsheet.** @param cmd the SQL query that will be used to get the data for this* <code>RowSet</code> object; may be <code>null</code>* @exception SQLException if a database access error occurs* @see #getCommand*/void setCommand(String cmd) throws SQLException;/*** Retrieves whether this <code>RowSet</code> object is read-only.* If updates are possible, the default is for a rowset to be* updatable.* <P>* Attempts to update a read-only rowset will result in an* <code>SQLException</code> being thrown.** @return <code>true</code> if this <code>RowSet</code> object is* read-only; <code>false</code> if it is updatable* @see #setReadOnly*/boolean isReadOnly();/*** Sets whether this <code>RowSet</code> object is read-only to the* given <code>boolean</code>.** @param value <code>true</code> if read-only; <code>false</code> if* updatable* @exception SQLException if a database access error occurs* @see #isReadOnly*/void setReadOnly(boolean value) throws SQLException;/*** Retrieves the maximum number of bytes that may be returned* for certain column values.* This limit applies only to <code>BINARY</code>,* <code>VARBINARY</code>, <code>LONGVARBINARYBINARY</code>, <code>CHAR</code>,* <code>VARCHAR</code>, <code>LONGVARCHAR</code>, <code>NCHAR</code>* and <code>NVARCHAR</code> columns.* If the limit is exceeded, the excess data is silently discarded.** @return the current maximum column size limit; zero means that there* is no limit* @exception SQLException if a database access error occurs* @see #setMaxFieldSize*/int getMaxFieldSize() throws SQLException;/*** Sets the maximum number of bytes that can be returned for a column* value to the given number of bytes.* This limit applies only to <code>BINARY</code>,* <code>VARBINARY</code>, <code>LONGVARBINARYBINARY</code>, <code>CHAR</code>,* <code>VARCHAR</code>, <code>LONGVARCHAR</code>, <code>NCHAR</code>* and <code>NVARCHAR</code> columns.* If the limit is exceeded, the excess data is silently discarded.* For maximum portability, use values greater than 256.** @param max the new max column size limit in bytes; zero means unlimited* @exception SQLException if a database access error occurs* @see #getMaxFieldSize*/void setMaxFieldSize(int max) throws SQLException;/*** Retrieves the maximum number of rows that this <code>RowSet</code>* object can contain.* If the limit is exceeded, the excess rows are silently dropped.** @return the current maximum number of rows that this <code>RowSet</code>* object can contain; zero means unlimited* @exception SQLException if a database access error occurs* @see #setMaxRows*/int getMaxRows() throws SQLException;/*** Sets the maximum number of rows that this <code>RowSet</code>* object can contain to the specified number.* If the limit is exceeded, the excess rows are silently dropped.** @param max the new maximum number of rows; zero means unlimited* @exception SQLException if a database access error occurs* @see #getMaxRows*/void setMaxRows(int max) throws SQLException;/*** Retrieves whether escape processing is enabled for this* <code>RowSet</code> object.* If escape scanning is enabled, which is the default, the driver will do* escape substitution before sending an SQL statement to the database.** @return <code>true</code> if escape processing is enabled;* <code>false</code> if it is disabled* @exception SQLException if a database access error occurs* @see #setEscapeProcessing*/boolean getEscapeProcessing() throws SQLException;/*** Sets escape processing for this <code>RowSet</code> object on or* off. If escape scanning is on (the default), the driver will do* escape substitution before sending an SQL statement to the database.** @param enable <code>true</code> to enable escape processing;* <code>false</code> to disable it* @exception SQLException if a database access error occurs* @see #getEscapeProcessing*/void setEscapeProcessing(boolean enable) throws SQLException;/*** Retrieves the maximum number of seconds the driver will wait for* a statement to execute.* If this limit is exceeded, an <code>SQLException</code> is thrown.** @return the current query timeout limit in seconds; zero means* unlimited* @exception SQLException if a database access error occurs* @see #setQueryTimeout*/int getQueryTimeout() throws SQLException;/*** Sets the maximum time the driver will wait for* a statement to execute to the given number of seconds.* If this limit is exceeded, an <code>SQLException</code> is thrown.** @param seconds the new query timeout limit in seconds; zero means* that there is no limit* @exception SQLException if a database access error occurs* @see #getQueryTimeout*/void setQueryTimeout(int seconds) throws SQLException;/*** Sets the type of this <code>RowSet</code> object to the given type.* This method is used to change the type of a rowset, which is by* default read-only and non-scrollable.** @param type one of the <code>ResultSet</code> constants specifying a type:* <code>ResultSet.TYPE_FORWARD_ONLY</code>,* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or* <code>ResultSet.TYPE_SCROLL_SENSITIVE</code>* @exception SQLException if a database access error occurs* @see java.sql.ResultSet#getType*/void setType(int type) throws SQLException;/*** Sets the concurrency of this <code>RowSet</code> object to the given* concurrency level. This method is used to change the concurrency level* of a rowset, which is by default <code>ResultSet.CONCUR_READ_ONLY</code>** @param concurrency one of the <code>ResultSet</code> constants specifying a* concurrency level: <code>ResultSet.CONCUR_READ_ONLY</code> or* <code>ResultSet.CONCUR_UPDATABLE</code>* @exception SQLException if a database access error occurs* @see ResultSet#getConcurrency*/void setConcurrency(int concurrency) throws SQLException;//-----------------------------------------------------------------------// Parameters//-----------------------------------------------------------------------/*** The <code>RowSet</code> setter methods are used to set any input parameters* needed by the <code>RowSet</code> object's command.* Parameters are set at run time, as opposed to design time.*//*** Sets the designated parameter in this <code>RowSet</code> object's SQL* command to SQL <code>NULL</code>.** <P><B>Note:</B> You must specify the parameter's SQL type.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param sqlType a SQL type code defined by <code>java.sql.Types</code>* @exception SQLException if a database access error occurs*/void setNull(int parameterIndex, int sqlType) throws SQLException;/*** Sets the designated parameter to SQL <code>NULL</code>.** <P><B>Note:</B> You must specify the parameter's SQL type.** @param parameterName the name of the parameter* @param sqlType the SQL type code defined in <code>java.sql.Types</code>* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.4*/void setNull(String parameterName, int sqlType) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's SQL* command to SQL <code>NULL</code>. This version of the method <code>setNull</code>* should be used for SQL user-defined types (UDTs) and <code>REF</code> type* parameters. Examples of UDTs include: <code>STRUCT</code>, <code>DISTINCT</code>,* <code>JAVA_OBJECT</code>, and named array types.** <P><B>Note:</B> To be portable, applications must give the* SQL type code and the fully qualified SQL type name when specifying* a NULL UDT or <code>REF</code> parameter. In the case of a UDT,* the name is the type name of the parameter itself. For a <code>REF</code>* 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 UDT and <code>REF</code> 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 <code>REF</code> type,* the typeName parameter is ignored.*** @param paramIndex the first parameter is 1, the second is 2, ...* @param sqlType a value from <code>java.sql.Types</code>* @param typeName the fully qualified name of an SQL UDT or the type* name of the SQL structured type being referenced by a <code>REF</code>* type; ignored if the parameter is not a UDT or <code>REF</code> type* @exception SQLException if a database access error occurs*/void setNull (int paramIndex, int sqlType, String typeName)throws SQLException;/*** Sets the designated parameter to SQL <code>NULL</code>.* This version of the method <code>setNull</code> 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.** <P><B>Note:</B> 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.*** @param parameterName the name of the parameter* @param sqlType a value from <code>java.sql.Types</code>* @param typeName the fully-qualified name of an SQL user-defined type;* ignored if the parameter is not a user-defined type or* SQL <code>REF</code> value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.4*/void setNull (String parameterName, int sqlType, String typeName)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>boolean</code> value. The driver converts this to* an SQL <code>BIT</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setBoolean(int parameterIndex, boolean x) throws SQLException;/*** Sets the designated parameter to the given Java <code>boolean</code> value.* The driver converts this* to an SQL <code>BIT</code> or <code>BOOLEAN</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @see #getBoolean* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.4*/void setBoolean(String parameterName, boolean x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>byte</code> value. The driver converts this to* an SQL <code>TINYINT</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setByte(int parameterIndex, byte x) throws SQLException;/*** Sets the designated parameter to the given Java <code>byte</code> value.* The driver converts this* to an SQL <code>TINYINT</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getByte* @since 1.4*/void setByte(String parameterName, byte x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>short</code> value. The driver converts this to* an SQL <code>SMALLINT</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setShort(int parameterIndex, short x) throws SQLException;/*** Sets the designated parameter to the given Java <code>short</code> value.* The driver converts this* to an SQL <code>SMALLINT</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getShort* @since 1.4*/void setShort(String parameterName, short x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>int</code> value. The driver converts this to* an SQL <code>INTEGER</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setInt(int parameterIndex, int x) throws SQLException;/*** Sets the designated parameter to the given Java <code>int</code> value.* The driver converts this* to an SQL <code>INTEGER</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getInt* @since 1.4*/void setInt(String parameterName, int x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>long</code> value. The driver converts this to* an SQL <code>BIGINT</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setLong(int parameterIndex, long x) throws SQLException;/*** Sets the designated parameter to the given Java <code>long</code> value.* The driver converts this* to an SQL <code>BIGINT</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getLong* @since 1.4*/void setLong(String parameterName, long x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>float</code> value. The driver converts this to* an SQL <code>REAL</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setFloat(int parameterIndex, float x) throws SQLException;/*** Sets the designated parameter to the given Java <code>float</code> value.* The driver converts this* to an SQL <code>FLOAT</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getFloat* @since 1.4*/void setFloat(String parameterName, float x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>double</code> value. The driver converts this to* an SQL <code>DOUBLE</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setDouble(int parameterIndex, double x) throws SQLException;/*** Sets the designated parameter to the given Java <code>double</code> value.* The driver converts this* to an SQL <code>DOUBLE</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getDouble* @since 1.4*/void setDouble(String parameterName, double x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given {@code java.math.BigDecimal} value.* The driver converts this to* an SQL <code>NUMERIC</code> value before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException;/*** Sets the designated parameter to the given* <code>java.math.BigDecimal</code> value.* The driver converts this to an SQL <code>NUMERIC</code> value when* it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getBigDecimal* @since 1.4*/void setBigDecimal(String parameterName, BigDecimal x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java <code>String</code> value. Before sending it to the* database, the driver converts this to an SQL <code>VARCHAR</code> or* <code>LONGVARCHAR</code> value, depending on the argument's size relative* to the driver's limits on <code>VARCHAR</code> values.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setString(int parameterIndex, String x) throws SQLException;/*** Sets the designated parameter to the given Java <code>String</code> value.* The driver converts this* to an SQL <code>VARCHAR</code> or <code>LONGVARCHAR</code> value* (depending on the argument's* size relative to the driver's limits on <code>VARCHAR</code> values)* when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getString* @since 1.4*/void setString(String parameterName, String x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given Java array of <code>byte</code> values. Before sending it to the* database, the driver converts this to an SQL <code>VARBINARY</code> or* <code>LONGVARBINARY</code> value, depending on the argument's size relative* to the driver's limits on <code>VARBINARY</code> values.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/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 SQL <code>VARBINARY</code> or* <code>LONGVARBINARY</code> (depending on the argument's size relative* to the driver's limits on <code>VARBINARY</code> values) when it sends* it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getBytes* @since 1.4*/void setBytes(String parameterName, byte x[]) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given <code>java.sql.Date</code> value. The driver converts this to* an SQL <code>DATE</code> value before sending it to the database, using the* default <code>java.util.Calendar</code> to calculate the date.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setDate(int parameterIndex, java.sql.Date x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given <code>java.sql.Time</code> value. The driver converts this to* an SQL <code>TIME</code> value before sending it to the database, using the* default <code>java.util.Calendar</code> to calculate it.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setTime(int parameterIndex, java.sql.Time x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given <code>java.sql.Timestamp</code> value. The driver converts this to* an SQL <code>TIMESTAMP</code> value before sending it to the database, using the* default <code>java.util.Calendar</code> to calculate it.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @exception SQLException if a database access error occurs*/void setTimestamp(int parameterIndex, java.sql.Timestamp x)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Timestamp</code> value.* The driver* converts this to an SQL <code>TIMESTAMP</code> value when it sends it to the* database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getTimestamp* @since 1.4*/void setTimestamp(String parameterName, java.sql.Timestamp x)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given <code>java.io.InputStream</code> value.* It may be more practical to send a very large ASCII value via a* <code>java.io.InputStream</code> rather than as a <code>LONGVARCHAR</code>* parameter. The driver will read the data from the stream* as needed until it reaches end-of-file.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the Java input stream that contains the ASCII parameter value* @param length the number of bytes in the stream* @exception SQLException if a database access error occurs*/void setAsciiStream(int parameterIndex, java.io.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 a <code>LONGVARCHAR</code>* parameter, it may be more practical to send it via a* <code>java.io.InputStream</code>. 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.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.** @param parameterName the name of the parameter* @param x the Java input stream that contains the ASCII parameter value* @param length the number of bytes in the stream* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.4*/void setAsciiStream(String parameterName, java.io.InputStream x, int length)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given <code>java.io.InputStream</code> value.* It may be more practical to send a very large binary value via a* <code>java.io.InputStream</code> rather than as a <code>LONGVARBINARY</code>* parameter. The driver will read the data from the stream* as needed until it reaches end-of-file.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the java input stream which contains the binary parameter value* @param length the number of bytes in the stream* @exception SQLException if a database access error occurs*/void setBinaryStream(int parameterIndex, java.io.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 a <code>LONGVARBINARY</code>* parameter, it may be more practical to send it via a* <code>java.io.InputStream</code> object. The data will be read from the stream* as needed until end-of-file is reached.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.** @param parameterName the name of the parameter* @param x the java input stream which contains the binary parameter value* @param length the number of bytes in the stream* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.4*/void setBinaryStream(String parameterName, java.io.InputStream x,int length) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given <code>java.io.Reader</code> value.* It may be more practical to send a very large UNICODE value via a* <code>java.io.Reader</code> rather than as a <code>LONGVARCHAR</code>* parameter. The driver will read the data from the stream* as needed until it reaches end-of-file.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param reader the {@code Reader} object that contains the UNICODE data* to be set* @param length the number of characters in the stream* @exception SQLException if a database access error occurs*/void setCharacterStream(int parameterIndex,Reader reader,int length) throws SQLException;/*** Sets the designated parameter to the given {@code Reader}* object, which is the given number of characters long.* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>* parameter, it may be more practical to send it via a* <code>java.io.Reader</code> 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.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.** @param parameterName the name of the parameter* @param reader the <code>java.io.Reader</code> object that* contains the UNICODE data used as the designated parameter* @param length the number of characters in the stream* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.4*/void setCharacterStream(String parameterName,java.io.Reader reader,int length) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given input stream.* When a very large ASCII value is input to a <code>LONGVARCHAR</code>* parameter, it may be more practical to send it via a* <code>java.io.InputStream</code>. 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.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setAsciiStream</code> which takes a length parameter.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the Java input stream that contains the ASCII parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setAsciiStream(int parameterIndex, java.io.InputStream x)throws SQLException;/*** Sets the designated parameter to the given input stream.* When a very large ASCII value is input to a <code>LONGVARCHAR</code>* parameter, it may be more practical to send it via a* <code>java.io.InputStream</code>. 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.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setAsciiStream</code> which takes a length parameter.** @param parameterName the name of the parameter* @param x the Java input stream that contains the ASCII parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setAsciiStream(String parameterName, java.io.InputStream x)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given input stream.* When a very large binary value is input to a <code>LONGVARBINARY</code>* parameter, it may be more practical to send it via a* <code>java.io.InputStream</code> object. The data will be read from the* stream as needed until end-of-file is reached.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setBinaryStream</code> which takes a length parameter.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the java input stream which contains the binary parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setBinaryStream(int parameterIndex, java.io.InputStream x)throws SQLException;/*** Sets the designated parameter to the given input stream.* When a very large binary value is input to a <code>LONGVARBINARY</code>* parameter, it may be more practical to send it via a* <code>java.io.InputStream</code> object. The data will be read from the* stream as needed until end-of-file is reached.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setBinaryStream</code> which takes a length parameter.** @param parameterName the name of the parameter* @param x the java input stream which contains the binary parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setBinaryStream(String parameterName, java.io.InputStream x)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to the given {@code Reader}* object.* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>* parameter, it may be more practical to send it via a* <code>java.io.Reader</code> 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.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setCharacterStream</code> which takes a length parameter.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param reader the <code>java.io.Reader</code> object that contains the* Unicode data* @exception SQLException if a database access error occurs or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setCharacterStream(int parameterIndex,java.io.Reader reader) throws SQLException;/*** Sets the designated parameter to the given {@code Reader}* object.* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>* parameter, it may be more practical to send it via a* <code>java.io.Reader</code> 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.** <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setCharacterStream</code> which takes a length parameter.** @param parameterName the name of the parameter* @param reader the <code>java.io.Reader</code> object that contains the* Unicode data* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setCharacterStream(String parameterName,java.io.Reader reader) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* to a {@code Reader} object. The* {@code Reader} reads the data till end-of-file is reached. The* driver does the necessary conversion from Java character format to* the national character set in the database.* <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setNCharacterStream</code> which takes a length parameter.** @param parameterIndex of the first parameter is 1, the second is 2, ...* @param value the parameter value* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur ; if a database access error occurs; or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setNCharacterStream(int parameterIndex, Reader value) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given Java <code>Object</code>. For integral values, the* <code>java.lang</code> equivalent objects should be used (for example,* an instance of the class <code>Integer</code> for an <code>int</code>).** If the second argument is an <code>InputStream</code> then the stream must contain* the number of bytes specified by scaleOrLength. If the second argument is a* {@code Reader} then the {@code Reader} must contain the number of characters specified* by scaleOrLength. If these conditions are not true the driver will generate a* <code>SQLException</code> when the prepared statement is executed.** <p>The given Java object will be converted to the targetSqlType* before being sent to the database.* <P>* If the object is of a class implementing <code>SQLData</code>,* the rowset should call the method <code>SQLData.writeSQL</code>* to write the object to an <code>SQLOutput</code> data stream.* If, on the other hand, the object is of a class implementing* <code>Ref</code>, <code>Blob</code>, <code>Clob</code>, <code>NClob</code>,* <code>Struct</code>, <code>java.net.URL</code>,* or <code>Array</code>, the driver should pass it to the database as a* value of the corresponding SQL type.*** <p>Note that this method may be used to pass database-specific* abstract data types.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the object containing the input parameter value* @param targetSqlType the SQL type (as defined in <code>java.sql.Types</code>)* to be sent to the database. The scale argument may further qualify this* type.* @param scaleOrLength for <code>java.sql.Types.DECIMAL</code>* or <code>java.sql.Types.NUMERIC types</code>,* this is the number of digits after the decimal point. For* Java Object types <code>InputStream</code> and {@code Reader},* this is the length* of the data in the stream or {@code Reader}. For all other types,* this value will be ignored.* @exception SQLException if a database access error occurs* @see java.sql.Types*/void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)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* <code>java.lang</code> equivalent objects should be used.** <p>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 <code>SQLData</code>),* the JDBC driver should call the method <code>SQLData.writeSQL</code> to write it* to the SQL data stream.* If, on the other hand, the object is of a class implementing* <code>Ref</code>, <code>Blob</code>, <code>Clob</code>, <code>NClob</code>,* <code>Struct</code>, <code>java.net.URL</code>,* or <code>Array</code>, the driver should pass it to the database as a* value of the corresponding SQL type.* <P>* Note that this method may be used to pass database-* specific abstract data types.** @param parameterName the name of the parameter* @param x the object containing the input parameter value* @param targetSqlType the SQL type (as defined in java.sql.Types) to be* sent to the database. The scale argument may further qualify this type.* @param 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.* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if <code>targetSqlType</code> is* a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,* <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,* <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,* <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>* or <code>STRUCT</code> data type and the JDBC driver does not support* this data type* @see Types* @see #getObject* @since 1.4*/void setObject(String parameterName, Object x, int targetSqlType, int scale)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with a Java <code>Object</code>. For integral values, the* <code>java.lang</code> equivalent objects should be used.* This method is like <code>setObject</code> above, but the scale used is the scale* of the second parameter. Scalar values have a scale of zero. Literal* values have the scale present in the literal.* <P>* Even though it is supported, it is not recommended that this method* be called with floating point input values.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the object containing the input parameter value* @param targetSqlType the SQL type (as defined in <code>java.sql.Types</code>)* to be sent to the database* @exception SQLException if a database access error occurs*/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 method <code>setObject</code>* above, except that it assumes a scale of zero.** @param parameterName the name of the parameter* @param x the object containing the input parameter value* @param targetSqlType the SQL type (as defined in java.sql.Types) to be* sent to the database* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if <code>targetSqlType</code> is* a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,* <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,* <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,* <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>* or <code>STRUCT</code> data type and the JDBC driver does not support* this data type* @see #getObject* @since 1.4*/void setObject(String parameterName, Object x, int targetSqlType)throws SQLException;/*** Sets the value of the designated parameter with the given object.* The second parameter must be of type <code>Object</code>; therefore, the* <code>java.lang</code> equivalent objects should be used for built-in types.** <p>The JDBC specification specifies a standard mapping from* Java <code>Object</code> types to SQL types. The given argument* will be converted to the corresponding SQL type before being* sent to the database.** <p>Note that this method may be used to pass database-* specific abstract data types, by using a driver-specific Java* type.** If the object is of a class implementing the interface <code>SQLData</code>,* the JDBC driver should call the method <code>SQLData.writeSQL</code>* to write it to the SQL data stream.* If, on the other hand, the object is of a class implementing* <code>Ref</code>, <code>Blob</code>, <code>Clob</code>, <code>NClob</code>,* <code>Struct</code>, <code>java.net.URL</code>,* or <code>Array</code>, the driver should pass it to the database as a* value of the corresponding SQL type.* <P>* 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.** @param parameterName the name of the parameter* @param x the object containing the input parameter value* @exception SQLException if a database access error occurs,* this method is called on a closed <code>CallableStatement</code> or if the given* <code>Object</code> parameter is ambiguous* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getObject* @since 1.4*/void setObject(String parameterName, Object x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with a Java <code>Object</code>. For integral values, the* <code>java.lang</code> equivalent objects should be used.** <p>The JDBC specification provides a standard mapping from* Java Object types to SQL types. The driver will convert the* given Java object to its standard SQL mapping before sending it* to the database.** <p>Note that this method may be used to pass database-specific* abstract data types by using a driver-specific Java type.** If the object is of a class implementing <code>SQLData</code>,* the rowset should call the method <code>SQLData.writeSQL</code>* to write the object to an <code>SQLOutput</code> data stream.* If, on the other hand, the object is of a class implementing* <code>Ref</code>, <code>Blob</code>, <code>Clob</code>, <code>NClob</code>,* <code>Struct</code>, <code>java.net.URL</code>,* or <code>Array</code>, the driver should pass it to the database as a* value of the corresponding SQL type.** <P>* An exception is thrown if there is an ambiguity, for example, if the* object is of a class implementing more than one of these interfaces.** @param parameterIndex The first parameter is 1, the second is 2, ...* @param x The object containing the input parameter value* @exception SQLException if a database access error occurs*/void setObject(int parameterIndex, Object x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>Ref</code> value. The driver will convert this* to the appropriate <code>REF(<structured-type>)</code> value.** @param i the first parameter is 1, the second is 2, ...* @param x an object representing data of an SQL <code>REF</code> type* @exception SQLException if a database access error occurs*/void setRef (int i, Ref x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>Blob</code> value. The driver will convert this* to the <code>BLOB</code> value that the <code>Blob</code> object* represents before sending it to the database.** @param i the first parameter is 1, the second is 2, ...* @param x an object representing a BLOB* @exception SQLException if a database access error occurs*/void setBlob (int i, Blob x) throws SQLException;/*** Sets the designated parameter to a <code>InputStream</code> object.* The <code>InputStream</code> must contain the number* of characters specified by length otherwise a <code>SQLException</code> will be* generated when the <code>PreparedStatement</code> is executed.* This method differs from the <code>setBinaryStream (int, InputStream, int)</code>* method because it informs the driver that the parameter value should be* sent to the server as a <code>BLOB</code>. When the <code>setBinaryStream</code> method is used,* the driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code>* @param parameterIndex index of the first parameter is 1,* the second is 2, ...* @param inputStream An object that contains the data to set the parameter* value to.* @param length the number of bytes in the parameter data.* @throws SQLException if a database access error occurs,* this method is called on a closed <code>PreparedStatement</code>,* if parameterIndex does not correspond* to a parameter marker in the SQL statement, if the length specified* is less than zero or if the number of bytes in the <code>InputStream</code> does not match* the specified length.* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method** @since 1.6*/void setBlob(int parameterIndex, InputStream inputStream, long length)throws SQLException;/*** Sets the designated parameter to a <code>InputStream</code> object.* This method differs from the <code>setBinaryStream (int, InputStream)</code>* method because it informs the driver that the parameter value should be* sent to the server as a <code>BLOB</code>. When the <code>setBinaryStream</code> method is used,* the driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code>** <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setBlob</code> which takes a length parameter.** @param parameterIndex index of the first parameter is 1,* the second is 2, ...* @param inputStream An object that contains the data to set the parameter* value to.* @throws SQLException if a database access error occurs,* this method is called on a closed <code>PreparedStatement</code> or* if parameterIndex does not correspond* to a parameter marker in the SQL statement,* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method** @since 1.6*/void setBlob(int parameterIndex, InputStream inputStream)throws SQLException;/*** Sets the designated parameter to a <code>InputStream</code> object.* The {@code InputStream} must contain the number* of characters specified by length, otherwise a <code>SQLException</code> will be* generated when the <code>CallableStatement</code> is executed.* This method differs from the <code>setBinaryStream (int, InputStream, int)</code>* method because it informs the driver that the parameter value should be* sent to the server as a <code>BLOB</code>. When the <code>setBinaryStream</code> method is used,* the driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code>** @param parameterName the name of the parameter to be set* the second is 2, ...** @param inputStream An object that contains the data to set the parameter* value to.* @param length the number of bytes in the parameter data.* @throws SQLException if parameterIndex does not correspond* to a parameter marker in the SQL statement, or if the length specified* is less than zero; if the number of bytes in the <code>InputStream</code> does not match* the specified length; if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method** @since 1.6*/void setBlob(String parameterName, InputStream inputStream, long length)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Blob</code> object.* The driver converts this to an SQL <code>BLOB</code> value when it* sends it to the database.** @param parameterName the name of the parameter* @param x a <code>Blob</code> object that maps an SQL <code>BLOB</code> value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.6*/void setBlob (String parameterName, Blob x) throws SQLException;/*** Sets the designated parameter to a <code>InputStream</code> object.* This method differs from the <code>setBinaryStream (int, InputStream)</code>* method because it informs the driver that the parameter value should be* sent to the server as a <code>BLOB</code>. When the <code>setBinaryStream</code> method is used,* the driver may have to do extra work to determine whether the parameter* data should be send to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code>** <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setBlob</code> which takes a length parameter.** @param parameterName the name of the parameter* @param inputStream An object that contains the data to set the parameter* value to.* @throws SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method** @since 1.6*/void setBlob(String parameterName, InputStream inputStream)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>Clob</code> value. The driver will convert this* to the <code>CLOB</code> value that the <code>Clob</code> object* represents before sending it to the database.** @param i the first parameter is 1, the second is 2, ...* @param x an object representing a CLOB* @exception SQLException if a database access error occurs*/void setClob (int i, Clob x) throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* The {@code Reader} must contain the number* of characters specified by length otherwise a <code>SQLException</code> will be* generated when the <code>PreparedStatement</code> is executed.*This method differs from the <code>setCharacterStream (int, Reader, int)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>CLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code>* @param parameterIndex index of the first parameter is 1, the second is 2, ...* @param reader An object that contains the data to set the parameter value to.* @param length the number of characters in the parameter data.* @throws SQLException if a database access error occurs, this method is called on* a closed <code>PreparedStatement</code>, if parameterIndex does not correspond to a parameter* marker in the SQL statement, or if the length specified is less than zero.** @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setClob(int parameterIndex, Reader reader, long length)throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* This method differs from the <code>setCharacterStream (int, Reader)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>CLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code>** <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setClob</code> which takes a length parameter.** @param parameterIndex index of the first parameter is 1, the second is 2, ...* @param reader An object that contains the data to set the parameter value to.* @throws SQLException if a database access error occurs, this method is called on* a closed <code>PreparedStatement</code>or if parameterIndex does not correspond to a parameter* marker in the SQL statement** @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setClob(int parameterIndex, Reader reader)throws SQLException;/*** Sets the designated parameter to a {@code Reader} object. The* {@code Reader} must contain the number* of characters specified by length otherwise a <code>SQLException</code> will be* generated when the <code>CallableStatement</code> is executed.* This method differs from the <code>setCharacterStream (int, Reader, int)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>CLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code>* @param parameterName the name of the parameter to be set* @param reader An object that contains the data to set the parameter value to.* @param length the number of characters in the parameter data.* @throws SQLException if parameterIndex does not correspond to a parameter* marker in the SQL statement; if the length specified is less than zero;* a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method** @since 1.6*/void setClob(String parameterName, Reader reader, long length)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Clob</code> object.* The driver converts this to an SQL <code>CLOB</code> value when it* sends it to the database.** @param parameterName the name of the parameter* @param x a <code>Clob</code> object that maps an SQL <code>CLOB</code> value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.6*/void setClob (String parameterName, Clob x) throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* This method differs from the <code>setCharacterStream (int, Reader)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>CLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code>** <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setClob</code> which takes a length parameter.** @param parameterName the name of the parameter* @param reader An object that contains the data to set the parameter value to.* @throws SQLException if a database access error occurs or this method is called on* a closed <code>CallableStatement</code>** @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setClob(String parameterName, Reader reader)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>Array</code> value. The driver will convert this* to the <code>ARRAY</code> value that the <code>Array</code> object* represents before sending it to the database.** @param i the first parameter is 1, the second is 2, ...* @param x an object representing an SQL array* @exception SQLException if a database access error occurs*/void setArray (int i, Array x) throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>java.sql.Date</code> value. The driver will convert this* to an SQL <code>DATE</code> value, using the given <code>java.util.Calendar</code>* object to calculate the date.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @param cal the <code>java.util.Calendar</code> object to use for calculating the date* @exception SQLException if a database access error occurs*/void setDate(int parameterIndex, java.sql.Date x, Calendar cal)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Date</code> value* using the default time zone of the virtual machine that is running* the application.* The driver converts this* to an SQL <code>DATE</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getDate* @since 1.4*/void setDate(String parameterName, java.sql.Date x)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Date</code> value,* using the given <code>Calendar</code> object. The driver uses* the <code>Calendar</code> object to construct an SQL <code>DATE</code> value,* which the driver then sends to the database. With a* a <code>Calendar</code> object, the driver can calculate the date* taking into account a custom timezone. If no* <code>Calendar</code> object is specified, the driver uses the default* timezone, which is that of the virtual machine running the application.** @param parameterName the name of the parameter* @param x the parameter value* @param cal the <code>Calendar</code> object the driver will use* to construct the date* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getDate* @since 1.4*/void setDate(String parameterName, java.sql.Date x, Calendar cal)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>java.sql.Time</code> value. The driver will convert this* to an SQL <code>TIME</code> value, using the given <code>java.util.Calendar</code>* object to calculate it, before sending it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @param cal the <code>java.util.Calendar</code> object to use for calculating the time* @exception SQLException if a database access error occurs*/void setTime(int parameterIndex, java.sql.Time x, Calendar cal)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Time</code> value.* The driver converts this* to an SQL <code>TIME</code> value when it sends it to the database.** @param parameterName the name of the parameter* @param x the parameter value* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getTime* @since 1.4*/void setTime(String parameterName, java.sql.Time x)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Time</code> value,* using the given <code>Calendar</code> object. The driver uses* the <code>Calendar</code> object to construct an SQL <code>TIME</code> value,* which the driver then sends to the database. With a* a <code>Calendar</code> object, the driver can calculate the time* taking into account a custom timezone. If no* <code>Calendar</code> object is specified, the driver uses the default* timezone, which is that of the virtual machine running the application.** @param parameterName the name of the parameter* @param x the parameter value* @param cal the <code>Calendar</code> object the driver will use* to construct the time* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getTime* @since 1.4*/void setTime(String parameterName, java.sql.Time x, Calendar cal)throws SQLException;/*** Sets the designated parameter in this <code>RowSet</code> object's command* with the given <code>java.sql.Timestamp</code> value. The driver will* convert this to an SQL <code>TIMESTAMP</code> value, using the given* <code>java.util.Calendar</code> object to calculate it, before sending it to the* database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @param cal the <code>java.util.Calendar</code> object to use for calculating the* timestamp* @exception SQLException if a database access error occurs*/void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal)throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.Timestamp</code> value,* using the given <code>Calendar</code> object. The driver uses* the <code>Calendar</code> object to construct an SQL <code>TIMESTAMP</code> value,* which the driver then sends to the database. With a* a <code>Calendar</code> object, the driver can calculate the timestamp* taking into account a custom timezone. If no* <code>Calendar</code> object is specified, the driver uses the default* timezone, which is that of the virtual machine running the application.** @param parameterName the name of the parameter* @param x the parameter value* @param cal the <code>Calendar</code> object the driver will use* to construct the timestamp* @exception SQLException if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @see #getTimestamp* @since 1.4*/void setTimestamp(String parameterName, java.sql.Timestamp x, Calendar cal)throws SQLException;/*** Clears the parameters set for this <code>RowSet</code> object's command.* <P>In general, parameter values remain in force for repeated use of a* <code>RowSet</code> object. 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, which can* be done by calling the method <code>clearParameters</code>.** @exception SQLException if a database access error occurs*/void clearParameters() throws SQLException;//---------------------------------------------------------------------// Reading and writing data//---------------------------------------------------------------------/*** Fills this <code>RowSet</code> object with data.* <P>* The <code>execute</code> method may use the following properties* to create a connection for reading data: url, data source name,* user name, password, transaction isolation, and type map.** The <code>execute</code> method may use the following properties* to create a statement to execute a command:* command, read only, maximum field size,* maximum rows, escape processing, and query timeout.* <P>* If the required properties have not been set, an exception is* thrown. If this method is successful, the current contents of the rowset are* discarded and the rowset's metadata is also (re)set. If there are* outstanding updates, they are ignored.* <P>* If this <code>RowSet</code> object does not maintain a continuous connection* with its source of data, it may use a {@code Reader} (a <code>RowSetReader</code>* object) to fill itself with data. In this case, a {@code Reader} will have been* registered with this <code>RowSet</code> object, and the method* <code>execute</code> will call on the {@code Reader}'s <code>readData</code>* method as part of its implementation.** @exception SQLException if a database access error occurs or any of the* properties necessary for making a connection and creating* a statement have not been set*/void execute() throws SQLException;//--------------------------------------------------------------------// Events//--------------------------------------------------------------------/*** Registers the given listener so that it will be notified of events* that occur on this <code>RowSet</code> object.** @param listener a component that has implemented the <code>RowSetListener</code>* interface and wants to be notified when events occur on this* <code>RowSet</code> object* @see #removeRowSetListener*/void addRowSetListener(RowSetListener listener);/*** Removes the specified listener from the list of components that will be* notified when an event occurs on this <code>RowSet</code> object.** @param listener a component that has been registered as a listener for this* <code>RowSet</code> object* @see #addRowSetListener*/void removeRowSetListener(RowSetListener listener);/*** Sets the designated parameter to the given <code>java.sql.SQLXML</code> object. The driver converts this to an* SQL <code>XML</code> value when it sends it to the database.* @param parameterIndex index of the first parameter is 1, the second is 2, ...* @param xmlObject a <code>SQLXML</code> object that maps an SQL <code>XML</code> value* @throws SQLException if a database access error occurs, this method* is called on a closed result set,* the <code>java.xml.transform.Result</code>,* <code>Writer</code> or <code>OutputStream</code> has not been closed* for the <code>SQLXML</code> object or* if there is an error processing the XML value. The <code>getCause</code> method* of the exception may provide a more detailed exception, for example, if the* stream does not contain valid XML.* @since 1.6*/void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.SQLXML</code> object. The driver converts this to an* <code>SQL XML</code> value when it sends it to the database.* @param parameterName the name of the parameter* @param xmlObject a <code>SQLXML</code> object that maps an <code>SQL XML</code> value* @throws SQLException if a database access error occurs, this method* is called on a closed result set,* the <code>java.xml.transform.Result</code>,* <code>Writer</code> or <code>OutputStream</code> has not been closed* for the <code>SQLXML</code> object or* if there is an error processing the XML value. The <code>getCause</code> method* of the exception may provide a more detailed exception, for example, if the* stream does not contain valid XML.* @since 1.6*/void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.RowId</code> object. The* driver converts this to a SQL <code>ROWID</code> value when it sends it* to the database** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the parameter value* @throws SQLException if a database access error occurs** @since 1.6*/void setRowId(int parameterIndex, RowId x) throws SQLException;/*** Sets the designated parameter to the given <code>java.sql.RowId</code> object. The* driver converts this to a SQL <code>ROWID</code> when it sends it to the* database.** @param parameterName the name of the parameter* @param x the parameter value* @throws SQLException if a database access error occurs* @since 1.6*/void setRowId(String parameterName, RowId x) throws SQLException;/*** Sets the designated parameter to the given <code>String</code> object.* The driver converts this to a SQL <code>NCHAR</code> or* <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> value* (depending on the argument's* size relative to the driver's limits on <code>NVARCHAR</code> values)* when it sends it to the database.** @param parameterIndex of the first parameter is 1, the second is 2, ...* @param value the parameter value* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur ; or if a database access error occurs* @since 1.6*/void setNString(int parameterIndex, String value) throws SQLException;/*** Sets the designated parameter to the given <code>String</code> object.* The driver converts this to a SQL <code>NCHAR</code> or* <code>NVARCHAR</code> or <code>LONGNVARCHAR</code>* @param parameterName the name of the column to be set* @param value the parameter value* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur; or if a database access error occurs* @since 1.6*/public void setNString(String parameterName, String value)throws SQLException;/*** Sets the designated parameter to a {@code Reader} object. The* {@code Reader} reads the data till end-of-file is reached. The* driver does the necessary conversion from Java character format to* the national character set in the database.* @param parameterIndex of the first parameter is 1, the second is 2, ...* @param value the parameter value* @param length the number of characters in the parameter data.* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur ; or if a database access error occurs* @since 1.6*/void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException;/*** Sets the designated parameter to a {@code Reader} object. The* {@code Reader} reads the data till end-of-file is reached. The* driver does the necessary conversion from Java character format to* the national character set in the database.* @param parameterName the name of the column to be set* @param value the parameter value* @param length the number of characters in the parameter data.* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur; or if a database access error occurs* @since 1.6*/public void setNCharacterStream(String parameterName, Reader value, long length)throws SQLException;/*** Sets the designated parameter to a {@code Reader} object. The* {@code Reader} reads the data till end-of-file is reached. The* driver does the necessary conversion from Java character format to* the national character set in the database.* <P><B>Note:</B> This stream object can either be a standard* Java stream object or your own subclass that implements the* standard interface.* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setNCharacterStream</code> which takes a length parameter.** @param parameterName the name of the parameter* @param value the parameter value* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur ; if a database access error occurs; or* this method is called on a closed <code>CallableStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.6*/void setNCharacterStream(String parameterName, Reader value) throws SQLException;/*** Sets the designated parameter to a <code>java.sql.NClob</code> object. The object* implements the <code>java.sql.NClob</code> interface. This <code>NClob</code>* object maps to a SQL <code>NCLOB</code>.* @param parameterName the name of the column to be set* @param value the parameter value* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur; or if a database access error occurs* @since 1.6*/void setNClob(String parameterName, NClob value) throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* The {@code Reader} must contain the number* of characters specified by length otherwise a <code>SQLException</code> will be* generated when the <code>CallableStatement</code> is executed.* This method differs from the <code>setCharacterStream (int, Reader, int)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>NCLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code>** @param parameterName the name of the parameter to be set* @param reader An object that contains the data to set the parameter value to.* @param length the number of characters in the parameter data.* @throws SQLException if parameterIndex does not correspond to a parameter* marker in the SQL statement; if the length specified is less than zero;* if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur; if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @exception SQLFeatureNotSupportedException if the JDBC driver does not support* this method* @since 1.6*/void setNClob(String parameterName, Reader reader, long length)throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* This method differs from the <code>setCharacterStream (int, Reader)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>NCLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code>* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setNClob</code> which takes a length parameter.** @param parameterName the name of the parameter* @param reader An object that contains the data to set the parameter value to.* @throws SQLException if the driver does not support national character sets;* if the driver can detect that a data conversion* error could occur; if a database access error occurs or* this method is called on a closed <code>CallableStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method** @since 1.6*/void setNClob(String parameterName, Reader reader)throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* The {@code Reader} must contain the number* of characters specified by length otherwise a <code>SQLException</code> will be* generated when the <code>PreparedStatement</code> is executed.* This method differs from the <code>setCharacterStream (int, Reader, int)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>NCLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code>* @param parameterIndex index of the first parameter is 1, the second is 2, ...* @param reader An object that contains the data to set the parameter value to.* @param length the number of characters in the parameter data.* @throws SQLException if parameterIndex does not correspond to a parameter* marker in the SQL statement; if the length specified is less than zero;* if the driver does not support national character sets;* if the driver can detect that a data conversion* error could occur; if a database access error occurs or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method** @since 1.6*/void setNClob(int parameterIndex, Reader reader, long length)throws SQLException;/*** Sets the designated parameter to a <code>java.sql.NClob</code> object. The driver converts this to a* SQL <code>NCLOB</code> value when it sends it to the database.* @param parameterIndex of the first parameter is 1, the second is 2, ...* @param value the parameter value* @throws SQLException if the driver does not support national* character sets; if the driver can detect that a data conversion* error could occur ; or if a database access error occurs* @since 1.6*/void setNClob(int parameterIndex, NClob value) throws SQLException;/*** Sets the designated parameter to a {@code Reader} object.* This method differs from the <code>setCharacterStream (int, Reader)</code> method* because it informs the driver that the parameter value should be sent to* the server as a <code>NCLOB</code>. When the <code>setCharacterStream</code> method is used, the* driver may have to do extra work to determine whether the parameter* data should be sent to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code>* <P><B>Note:</B> Consult your JDBC driver documentation to determine if* it might be more efficient to use a version of* <code>setNClob</code> which takes a length parameter.** @param parameterIndex index of the first parameter is 1, the second is 2, ...* @param reader An object that contains the data to set the parameter value to.* @throws SQLException if parameterIndex does not correspond to a parameter* marker in the SQL statement;* if the driver does not support national character sets;* if the driver can detect that a data conversion* error could occur; if a database access error occurs or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method** @since 1.6*/void setNClob(int parameterIndex, Reader reader)throws SQLException;/*** Sets the designated parameter to the given <code>java.net.URL</code> value.* The driver converts this to an SQL <code>DATALINK</code> value* when it sends it to the database.** @param parameterIndex the first parameter is 1, the second is 2, ...* @param x the <code>java.net.URL</code> object to be set* @exception SQLException if a database access error occurs or* this method is called on a closed <code>PreparedStatement</code>* @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method* @since 1.4*/void setURL(int parameterIndex, java.net.URL x) throws SQLException;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。