/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package javax.sql; import java.io.InputStream; import java.io.Reader; import java.math.BigDecimal; import java.net.URL; import java.sql.Array; import java.sql.Blob; import java.sql.Clob; import java.sql.Date; import java.sql.NClob; import java.sql.Ref; import java.sql.ResultSet; import java.sql.RowId; import java.sql.SQLException; import java.sql.SQLXML; import java.sql.Time; import java.sql.Timestamp; import java.util.Calendar; import java.util.Map; /** * An interface which provides means to access data which * persists on a database. It extends the functionality of * {@link java.sql.ResultSet ResultSet} into a form that it can be used as a * JavaBean component, suited for a visual programming environment. * <p> * {@code RowSet} provides getters and setters for properties relating to the * general database environment together with the getters and setters for * distinct data values which constitute the row set. The {@code RowSet} class * supports JavaBean events so that other components in an application can be * informed when changes happen such as changes in data values. * <p> * {@code RowSet} is a facility implemented on top of the remainder of the JDBC * API. It may be <i>connected</i>, maintaining a connection to the database * throughout its lifecycle. The changes made on a <i>disconnected</i> {@code * RowSet} on the other hand can be persisted only establishing a new connection * with the database each time. * <p> * Disconnected {@code RowSets} make use of {@code RowSetReaders} to populate * the {@code RowSet} with data, possibly from a non-relational database source. * They may also use {@code RowSetWriters} to send data back to the underlying * data store. There is considerable freedom in the way that {@code * RowSetReaders} and {@code RowSetWriters} may be implemented to retrieve and * store data. * * @see RowSetReader * @see RowSetWriter */ public interface RowSet extends ResultSet { /** * Registers the supplied {@link RowSetListener} with this {@code RowSet}. * Once registered, the {@link RowSetListener} is notified of events * generated by the {@code RowSet}. * * @param theListener * an object which implements the {@code rowSetListener} * interface. */ public void addRowSetListener(RowSetListener theListener); /** * Clears the parameters previously set for this {@code RowSet}. * <p> * The {@code RowSet} object retains its value until either a new value for * a parameter is set or its value is actively reset. {@code * clearParameters} provides a facility to clear the values for all * parameters with one method call. * * @throws SQLException * if a problem occurs accessing the database. */ public void clearParameters() throws SQLException; /** * Fetches data for this {@code RowSet} from the database. If successful, * any existing data for the {@code RowSet} is discarded and its metadata is * overwritten. * <p> * Data is retrieved connecting to the database and executing an * according SQL statement. This requires some or all of the following * properties to be set: URL, database name, user name, password, * transaction isolation, type map; plus some or all of the properties: * command, read only, maximum field size, maximum rows, escape processing, * and query timeout. * <p> * The {@code RowSet} may use a {@code RowSetReader} to access the database * it will then invoke the {@link RowSetReader#readData} method on the * reader to fetch the data. When the new data is fetched all the listeners * are notified to take appropriate measures. * * @throws SQLException * if a problem occurs accessing the database or if the * properties needed to access the database have not been set. * @see RowSetMetaData * @see RowSetReader */ public void execute() throws SQLException; /** * Gets the {@code RowSet}'s command property. * * @return a string containing the {@code RowSet}'s command property. A * command is a SQL statement which is executed to fetch required * data into the {@code RowSet}. */ public String getCommand(); /** * Gets the ODBC Data Source Name property associated with this {@code * RowSet}. The database name can be used to find a {@link DataSource} * which has been registered with a naming service - the {@link DataSource} * can then be used to create a connection to the database. * * @return the name of the database. */ public String getDataSourceName(); /** * Reports if escape processing is enabled for this {@code RowSet}. If * escape processing is on, the driver performs a substitution of the escape * syntax with the applicable code before sending an SQL command to the * database. The default value for escape processing is {@code true}. * * @return {@code true} if escape processing is enabled, {@code * false} otherwise. * @throws SQLException * if a problem occurs accessing the database. */ public boolean getEscapeProcessing() throws SQLException; /** * Gets the maximum number of bytes that can be returned for column values * which are of type {@code BINARY}, {@code VARBINARY}, {@code * LONGVARBINARYBINARY}, {@code CHAR}, {@code VARCHAR}, or {@code * LONGVARCHAR}. Excess data is silently discarded if the number is * exceeded. * * @return the current maximum size in bytes. 0 implies no size limit. * @throws SQLException * if a problem occurs accessing the database. */ public int getMaxFieldSize() throws SQLException; /** * Gets the maximum number of rows for this {@code RowSet}. Excess rows are * discarded silently if the limit is exceeded. * * @return the previous maximum number of rows. 0 implies no row limit. * @throws SQLException * if a problem occurs accessing the database. */ public int getMaxRows() throws SQLException; /** * Gets the value of the password property for this {@code RowSet}. This * property is used when a connection to the database is established. * Therefore it should be set prior to invoking the {@link #execute} method. * * @return the value of the password property. */ public String getPassword(); /** * Gets the timeout for the driver when a query operation is executed. If a * query takes longer than the timeout then a {@code SQLException} is * thrown. * * @return the timeout value in seconds. * @throws SQLException * if an error occurs accessing the database. */ public int getQueryTimeout() throws SQLException; /** * Gets the transaction isolation level property set for this * {@code RowSet}. The transaction isolation level defines the * policy implemented on the database for maintaining the data * values consistent. * * @return the current transaction isolation level. Must be one of: * <ul> * <li>{@code Connection.TRANSACTION_READ_UNCOMMITTED}</li> * <li>{@code Connection.TRANSACTION_READ_COMMITTED}</li> * <li>{@code Connection.TRANSACTION_REPEATABLE_READ}</li> * <li>{@code Connection.TRANSACTION_SERIALIZABLE}</li> * </ul> * @see java.sql.Connection */ public int getTransactionIsolation(); /** * Gets the custom mapping of SQL User-Defined Types (UDTs) and Java classes * for this {@code RowSet}, if applicable. * * @return the custom mappings of SQL types to Java classes. * @throws SQLException * if an error occurs accessing the database. */ public Map<String, Class<?>> getTypeMap() throws SQLException; /** * Gets the URL property value for this {@code RowSet}. If there is no * {@code DataSource} object specified, the {@code RowSet} uses the URL to * establish a connection to the database. The default value for the URL is * {@code null}. * * @return a String holding the value of the URL property. * @throws SQLException * if an error occurs accessing the database. */ public String getUrl() throws SQLException; /** * Gets the value of the {@code username} property for this {@code RowSet}. * The {@code username} is used when establishing a connection to the * database and should be set before the {@code execute} method is invoked. * * @return a {@code String} holding the value of the {@code username} * property. */ public String getUsername(); /** * Indicates if this {@code RowSet} is read-only. * * @return {@code true} if this {@code RowSet} is read-only, {@code false} * if it is updatable. */ public boolean isReadOnly(); /** * Removes a specified {@link RowSetListener} object from the set of * listeners which will be notified of events by this {@code RowSet}. * * @param theListener * the {@link RowSetListener} to remove from the set of listeners * for this {@code RowSet}. */ public void removeRowSetListener(RowSetListener theListener); /** * Sets the specified {@code ARRAY} parameter in the {@code RowSet} command * with the supplied {@code java.sql.Array} value. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theArray * the {@code Array} data value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setArray(int parameterIndex, Array theArray) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the ASCII data in the supplied {@code java.io.InputStream} value. * Data is read from the {@code InputStream} until end-of-file is reached. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theInputStream * the ASCII data value to which the parameter is set. * @param length * the length of the data in bytes. * @throws SQLException * if an error occurs accessing the database. */ public void setAsciiStream(int parameterIndex, InputStream theInputStream, int length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * ASCII data in the supplied java.io.InputStream value. Data is read from * the InputStream until end-of-file is reached. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theInputStream * an InputStream containing the ASCII data to set into the * parameter value * @throws SQLException * if an error occurs accessing the database. */ public void setAsciiStream(int parameterIndex, InputStream theInputStream) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * ASCII data in the supplied java.io.InputStream value. Data is read from * the InputStream until end-of-file is reached. * * @param parameterName * the name for parameter * @param theInputStream * an InputStream containing the ASCII data to set into the * parameter value * @throws SQLException * if an error occurs accessing the database. */ public void setAsciiStream(String parameterName, InputStream theInputStream) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * ASCII data in the supplied java.io.InputStream value. Data is read from * the InputStream until end-of-file is reached. * * @param parameterName * the name for parameter * @param theInputStream * an InputStream containing the ASCII data to set into the * parameter value * @param length * the length of the data in bytes * @throws SQLException * if an error occurs accessing the database. */ public void setAsciiStream(String parameterName, InputStream theInputStream, int length) throws SQLException; /** * Sets the value of the specified SQL {@code NUMERIC} parameter in the * {@code RowSet} command with the data in the supplied {@code * java.math.BigDecimal} value. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theBigDecimal * the big decimal value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setBigDecimal(int parameterIndex, BigDecimal theBigDecimal) throws SQLException; /** * Sets the value of the specified SQL NUMERIC parameter in the RowSet * command with the data in the supplied java.math.BigDecimal value. * * @param parameterName * the name for parameter * @param theBigDecimal * the BigDecimal containing the value * @throws SQLException * if an error occurs accessing the database. */ public void setBigDecimal(String parameterName, BigDecimal theBigDecimal) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to the binary data in the supplied input stream. Data is read from the * input stream until end-of-file is reached. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theInputStream * the binary data stream to which the parameter is set. * @param length * the length of the data in bytes. * @throws SQLException * if an error occurs accessing the database. */ public void setBinaryStream(int parameterIndex, InputStream theInputStream, int length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * binary data in the supplied java.io.InputStream value. Data is read from * the InputStream until end-of-file is reached. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @throws SQLException * if an error occurs accessing the database. */ public void setBinaryStream(int parameterIndex, InputStream theInputStream) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * binary data in the supplied java.io.InputStream value. Data is read from * the InputStream until end-of-file is reached. * * @param parameterName * the name for parameter * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @throws SQLException * if an error occurs accessing the database. */ public void setBinaryStream(String parameterName, InputStream theInputStream) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * binary data in the supplied java.io.InputStream value. Data is read from * the InputStream until end-of-file is reached. * * @param parameterName * the name for parameter * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @param length * the length of the data in bytes * @throws SQLException * if an error occurs accessing the database. */ public void setBinaryStream(String parameterName, InputStream theInputStream, int length) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to the supplied {@code Blob} value. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theBlob * the {@code Blob} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setBlob(int parameterIndex, Blob theBlob) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.InputStream. Data is read from the * InputStream until end-of-file is reached. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @throws SQLException * if an error occurs accessing the database. */ public void setBlob(int parameterIndex, InputStream theInputStream) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.InputStream. Data is read from the * InputStream until end-of-file is reached. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @param length * the length of the data in bytes * @throws SQLException * if an error occurs accessing the database. */ public void setBlob(int parameterIndex, InputStream theInputStream, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.InputStream. Data is read from the * InputStream until end-of-file is reached. * * @param parameterName * the name for parameter * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @throws SQLException * if an error occurs accessing the database. */ public void setBlob(String parameterName, InputStream theInputStream) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.InputStream. Data is read from the * InputStream until end-of-file is reached. * * @param parameterName * the name for parameter * @param theInputStream * an InputStream containing the binary data to set into the * parameter value * @param length * the length of the data in bytes * @throws SQLException * if an error occurs accessing the database. */ public void setBlob(String parameterName, InputStream theInputStream, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.sql.Blob. * * @param parameterName * the name for parameter * @param theBlob * the Blob value to set * @throws SQLException * if an error occurs accessing the database. */ public void setBlob(String parameterName, Blob theBlob) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to the supplied boolean. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theBoolean * the {@code boolean} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setBoolean(int parameterIndex, boolean theBoolean) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied boolean. * * @param parameterName * name for parameter * @param theBoolean * the boolean value to set * @throws SQLException * if an error occurs accessing the database. */ public void setBoolean(String parameterName, boolean theBoolean) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to the supplied byte value. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theByte * the {@code byte} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setByte(int parameterIndex, byte theByte) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied byte value. * * @param parameterName * name for parameter * @param theByte * the byte value to set * @throws SQLException * if an error occurs accessing the database. */ public void setByte(String parameterName, byte theByte) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to the supplied byte array value. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theByteArray * the {@code Array} of {@code bytes} to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setBytes(int parameterIndex, byte[] theByteArray) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied byte array value. * * @param parameterName * name for parameter * @param theByteArray * the array of bytes to set into the parameter. * @throws SQLException * if an error occurs accessing the database. */ public void setBytes(String parameterName, byte[] theByteArray) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to the sequence of Unicode characters carried by the supplied {@code * java.io.Reader}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theReader * the {@code Reader} which contains the Unicode data to set the * parameter. * @param length * the length of the data in the {@code Reader} in characters. * @throws SQLException * if an error occurs accessing the database. */ public void setCharacterStream(int parameterIndex, Reader theReader, int length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * sequence of Unicode characters carried by the supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setCharacterStream(int parameterIndex, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * sequence of Unicode characters carried by the supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setCharacterStream(String parameterName, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * sequence of Unicode characters carried by the supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setCharacterStream(String parameterName, Reader theReader, int length) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the value of a supplied {@code java.sql.Clob}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theClob * the {@code Clob} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setClob(int parameterIndex, Clob theClob) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setClob(int parameterIndex, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setClob(int parameterIndex, Reader theReader, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.sql.Clob. * * @param parameterName * name for parameter * @param theClob * the specific Clob object * @throws SQLException * if an error occurs accessing the database. */ public void setClob(String parameterName, Clob theClob) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setClob(String parameterName, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setClob(String parameterName, Reader theReader, long length) throws SQLException; /** * Sets the Command property for this {@code RowSet} - the command is an SQL * query which runs when the {@code execute} method is invoked. This * property is optional for databases that do not support commands. * * @param cmd * the SQL query. Can be {@code null}. * @throws SQLException * if an error occurs accessing the database. */ public void setCommand(String cmd) throws SQLException; /** * Sets the concurrency property of this {@code RowSet}. The default value * is {@code ResultSet.CONCUR_READ_ONLY}. * * @param concurrency * the concurrency value. One of: * <ul> * <li>{@code ResultSet.CONCUR_READ_ONLY}</li> * <li>{@code ResultSet.CONCUR_UPDATABLE}</li> * </ul> * @throws SQLException * if an error occurs accessing the database. * @see java.sql.ResultSet */ public void setConcurrency(int concurrency) throws SQLException; /** * Sets the database name property for the {@code RowSet}. * <p> * The database name can be used to find a {@link DataSource} which has been * registered with a naming service - the {@link DataSource} can then be * used to create a connection to the database. * * @param name * the database name. * @throws SQLException * if an error occurs accessing the database. */ public void setDataSourceName(String name) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the value of a supplied {@code java.sql.Date}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theDate * the date value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setDate(int parameterIndex, Date theDate) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the value of a supplied {@code java.sql.Date}, where the conversion * of the date to an SQL {@code DATE} value is calculated using a supplied * {@code Calendar}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theDate * the date to which the parameter is set. * @param theCalendar * the {@code Calendar} to use in converting the Date to an SQL * {@code DATE} value. * @throws SQLException * if an error occurs accessing the database. */ public void setDate(int parameterIndex, Date theDate, Calendar theCalendar) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.sql.Date, where the conversion of the Date to an * SQL DATE value is calculated using a supplied Calendar. * * @param parameterName * name for parameter * @param theDate * the Date to use * @throws SQLException * if an error occurs accessing the database. */ public void setDate(String parameterName, Date theDate) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.sql.Date, where the conversion of the Date to an * SQL DATE value is calculated using a supplied Calendar. * * @param parameterName * name for parameter * @param theDate * the Date to use * @param theCalendar * the Calendar to use in converting the Date to an SQL DATE * value * @throws SQLException * if an error occurs accessing the database. */ public void setDate(String parameterName, Date theDate, Calendar theCalendar) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the supplied {@code double}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theDouble * the {@code double} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setDouble(int parameterIndex, double theDouble) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * supplied double. * * @param parameterName * name for parameter * @param theDouble * the double value to set * @throws SQLException * if an error occurs accessing the database. */ public void setDouble(String parameterName, double theDouble) throws SQLException; /** * Sets the escape processing status for this {@code RowSet}. If escape * processing is on, the driver performs a substitution of the escape syntax * with the applicable code before sending an SQL command to the database. * The default value for escape processing is {@code true}. * * @param enable * {@code true} to enable escape processing, {@code false} to * turn it off. * @throws SQLException * if an error occurs accessing the database. */ public void setEscapeProcessing(boolean enable) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the supplied {@code float}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theFloat * the {@code float} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setFloat(int parameterIndex, float theFloat) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * supplied float. * * @param parameterName * name for parameter * @param theFloat * the float value to set * @throws SQLException * if an error occurs accessing the database. */ public void setFloat(String parameterName, float theFloat) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the supplied {@code integer}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theInteger * the {@code integer} value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setInt(int parameterIndex, int theInteger) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * supplied integer. * * @param parameterName * name for parameter * @param theInteger * the integer value to set * @throws SQLException * if an error occurs accessing the database. */ public void setInt(String parameterName, int theInteger) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * with the supplied {@code long}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theLong * the {@code long} value value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setLong(int parameterIndex, long theLong) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * supplied long. * * @param parameterName * name for parameter * @param theLong * the long value to set * @throws SQLException * if an error occurs accessing the database. */ public void setLong(String parameterName, long theLong) throws SQLException; /** * Sets the maximum number of bytes which can be returned for a column value * where the column type is one of {@code BINARY}, {@code VARBINARY}, * {@code LONGVARBINARYBINARY}, {@code CHAR}, {@code VARCHAR}, or {@code * LONGVARCHAR}. Data which exceeds this limit is silently discarded. For * portability, a value greater than 256 is recommended. * * @param max * the maximum size of the returned column value in bytes. 0 * implies no size limit. * @throws SQLException * if an error occurs accessing the database. */ public void setMaxFieldSize(int max) throws SQLException; /** * Sets the maximum number of rows which can be held by the {@code RowSet}. * Any additional rows are silently discarded. * * @param max * the maximum number of rows which can be held in the {@code * RowSet}. 0 means no limit. * @throws SQLException * if an error occurs accessing the database. */ public void setMaxRows(int max) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setNCharacterStream(int parameterIndex, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setNCharacterStream(int parameterIndex, Reader theReader, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setNCharacterStream(String parameterName, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setNCharacterStream(String parameterName, Reader theReader, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.sql.NClob. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theNClob * the NClob value to set * @throws SQLException * if an error occurs accessing the database. */ public void setNClob(int parameterIndex, NClob theNClob) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setNClob(int parameterIndex, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setNClob(int parameterIndex, Reader theReader, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.sql.NClob. * * @param parameterName * name for parameter * @param theNClob * the NClob value to set * @throws SQLException * if an error occurs accessing the database. */ public void setNClob(String parameterName, NClob theNClob) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @throws SQLException * if an error occurs accessing the database. */ public void setNClob(String parameterName, Reader theReader) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command with the * value of a supplied java.io.Reader. * * @param parameterName * name for parameter * @param theReader * the Reader which contains the Unicode data to set into the * parameter * @param length * the length of the data in the Reader in characters * @throws SQLException * if an error occurs accessing the database. */ public void setNClob(String parameterName, Reader theReader, long length) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied NString * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theNString * the NString value to set * @throws SQLException * if an error occurs accessing the database. */ public void setNString(int parameterIndex, String theNString) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied NString. * * @param parameterName * name for parameter * @param theNString * the NString value to set * @throws SQLException * if an error occurs accessing the database. */ public void setNString(String parameterName, String theNString) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to SQL {@code NULL}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param sqlType * the type of the parameter, as defined by {@code * java.sql.Types}. * @throws SQLException * if an error occurs accessing the database. */ public void setNull(int parameterIndex, int sqlType) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to SQL {@code NULL}. This form of the {@code setNull} method should be * used for User Defined Types and {@code REF} parameters. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param sqlType * the type of the parameter, as defined by {@code * java.sql.Types}. * @param typeName * the fully qualified name of an SQL user defined type or the * name of the SQL structured type referenced by a {@code REF} * type. Ignored if the sqlType is not a UDT or REF type. * @throws SQLException * if an error occurs accessing the database. */ public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to SQL * NULL. This form of the <code>setNull</code> method should be used for * User Defined Types and REF parameters. * * @param parameterName * name for parameter * @param sqlType * the type of the parameter, as defined by java.sql.Types. * @throws SQLException * if an error occurs accessing the database. */ public void setNull(String parameterName, int sqlType) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to SQL * NULL. This form of the <code>setNull</code> method should be used for * User Defined Types and REF parameters. * * @param parameterName * name for parameter * @param sqlType * the type of the parameter, as defined by java.sql.Types. * @param typeName * the fully qualified name of an SQL User Defined Type or the * name of the SQL structured type referenced by a REF type. * Ignored if the sqlType is not a UDT or REF type. * @throws SQLException * if an error occurs accessing the database. */ public void setNull(String parameterName, int sqlType, String typeName) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied Java object. * <p> * The JDBC specification provides a standard mapping for Java objects to * SQL data types. Database specific types can be mapped by JDBC driver * specific Java types. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theObject * the Java object containing the data value to which the * parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setObject(int parameterIndex, Object theObject) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied Java object. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theObject * the Java object containing the data value. * @param targetSqlType * the SQL type to send to the database, as defined in {@code * java.sql.Types}. * @throws SQLException * if an error occurs accessing the database. */ public void setObject(int parameterIndex, Object theObject, int targetSqlType) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied Java object. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theObject * the Java object containing the data value. * @param targetSqlType * the SQL type to send to the database, as defined in {@code * java.sql.Types}. * @param scale * the number of digits after the decimal point, for {@code * java.sql.Types.DECIMAL} and {@code java.sql.Types.NUMERIC} * types. Ignored for all other types. * @throws SQLException * if an error occurs accessing the database. */ public void setObject(int parameterIndex, Object theObject, int targetSqlType, int scale) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied Java object. * * @param parameterName * name for parameter * @param theObject * the Java object containing the data value. * @throws SQLException * if an error occurs accessing the database. */ public void setObject(String parameterName, Object theObject) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied Java object. * * @param parameterName * name for parameter * @param theObject * the Java object containing the data value. * @param targetSqlType * the SQL type to send to the database, as defined in * java.sql.Types. * @throws SQLException * if an error occurs accessing the database. */ public void setObject(String parameterName, Object theObject, int targetSqlType) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied Java object. * * @param parameterName * name for parameter * @param theObject * the Java object containing the data value. * @param targetSqlType * the SQL type to send to the database, as defined in * java.sql.Types. * @param scale * the number of digits after the decimal point, for * java.sql.Types.DECIMAL and java.sql.Types.NUMERIC types. * Ignored for all other types. * @throws SQLException * if an error occurs accessing the database. */ public void setObject(String parameterName, Object theObject, int targetSqlType, int scale) throws SQLException; /** * Sets the database Password for this {@code RowSet}. This property is used * when a connection to the database is established. Therefore it should be * set prior to invoking the {@link #execute} method. * * @param password * a {@code String} holding the password. * @throws SQLException * if an error occurs accessing the database. */ public void setPassword(String password) throws SQLException; /** * Gets the timeout for the driver when a query operation is executed. If a * query takes longer than the timeout, a {@code SQLException} is thrown. * * @param seconds * the number of seconds for the timeout. * @throws SQLException * if an error occurs accessing the database. */ public void setQueryTimeout(int seconds) throws SQLException; /** * Sets whether the {@code RowSet} is read-only or updatable. * * @param readOnly * {@code true} to set the {@code RowSet} to read-only state, * {@code false} to allow updates. * @throws SQLException * if an error occurs accessing the database. */ public void setReadOnly(boolean readOnly) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code java.sql.Ref}. This is sent to the database as an * SQL {@code REF} value. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theRef * the value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. * @see java.sql.Ref */ public void setRef(int parameterIndex, Ref theRef) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code short integer}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theShort * the value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setShort(int parameterIndex, short theShort) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied short integer. * * @param parameterName * name for parameter * @param theShort * the short value to set * @throws SQLException * if an error occurs accessing the database. */ public void setShort(String parameterName, short theShort) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code String}. The string is placed into the database as a * {@code VARCHAR} or {@code LONGVARCHAR} SQL value, depending on the * database limits for the length of {@code VARCHAR} values. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theString * the value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. */ public void setString(int parameterIndex, String theString) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied String. The String is placed into the database as a VARCHAR or * LONGVARCHAR SQL value, depending on the database limits for the length of * VARCHAR values. * * @param parameterName * name for parameter * @param theString * @throws SQLException * if an error occurs accessing the database. */ public void setString(String parameterName, String theString) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied RowId * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theRowId * the RowId value to set * @throws SQLException * if an error occurs accessing the database. */ public void setRowId(int parameterIndex, RowId theRowId) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied RowId. * * @param parameterName * name for parameter * @param theRowId * the RowId value to set * @throws SQLException * if an error occurs accessing the database. */ public void setRowId(String parameterName, RowId theRowId) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied SQLXML * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theSQLXML * the SQLXML value to set * @throws SQLException * if an error occurs accessing the database. */ public void setSQLXML(int parameterIndex, SQLXML theSQLXML) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to the * supplied SQLXML. * * @param parameterName * name for parameter * @param theSQLXML * the SQLXML value to set * @throws SQLException * if an error occurs accessing the database. */ public void setSQLXML(String parameterName, SQLXML theSQLXML) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code java.sql.Time}, converting it to an SQL {@code TIME} * value using the system default {@code Calendar}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theTime * the value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. * @see java.util.Calendar * @see java.sql.Time */ public void setTime(int parameterIndex, Time theTime) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code java.sql.Time}, converting it to an SQL {@code TIME} * value using a supplied {@code Calendar}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theTime * the value to which the parameter is set. * @param theCalendar * the {@code Calendar} to use in the conversion operation. * @throws SQLException * if an error occurs accessing the database. * @see java.util.Calendar * @see java.sql.Time */ public void setTime(int parameterIndex, Time theTime, Calendar theCalendar) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied java.sql.Time, converting to an SQL TIME value using a supplied * Calendar. * * @param parameterName * name for parameter * @param theTime * the Time value to set * @throws SQLException * if an error occurs accessing the database. */ public void setTime(String parameterName, Time theTime) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied java.sql.Time, converting to an SQL TIME value using a supplied * Calendar. * * @param parameterName * name for parameter * @param theTime * the Time value to set * @param theCalendar * the Calendar to use in the conversion operation * @throws SQLException * if an error occurs accessing the database. */ public void setTime(String parameterName, Time theTime, Calendar theCalendar) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code java.sql.Timestamp}, converting it to an SQL {@code * TIMESTAMP} value using the system default {@code Calendar}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theTimestamp * the value to which the parameter is set. * @throws SQLException * if an error occurs accessing the database. * @see java.util.Calendar * @see java.sql.Timestamp */ public void setTimestamp(int parameterIndex, Timestamp theTimestamp) throws SQLException; /** * Sets the value of the specified parameter in the {@code RowSet} command * to a supplied {@code java.sql.Timestamp}, converting it to an SQL {@code * TIMESTAMP} value using a supplied {@code Calendar}. * * @param parameterIndex * the index of the parameter to set; the first parameter's index * is 1. * @param theTimestamp * the value to which the parameter is set. * @param theCalendar * the {@code Calendar} to use in the conversion operation * @throws SQLException * if an error occurs accessing the database. * @see java.util.Calendar * @see java.sql.Timestamp */ public void setTimestamp(int parameterIndex, Timestamp theTimestamp, Calendar theCalendar) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied java.sql.Timestamp converting to an SQL TIMESTAMP value * using the system default {@code Calendar}. * * @param parameterName * name for parameter * @param theTimestamp * the value to which the parameter is set * @throws SQLException * if an error occurs accessing the database. */ public void setTimestamp(String parameterName, Timestamp theTimestamp) throws SQLException; /** * Sets the value of the specified parameter in the RowSet command to a * supplied java.sql.Timestamp converting to an SQL TIMESTAMP value using a * supplied Calendar. * * @param parameterName * name for parameter * @param theTimestamp * the value to which the parameter is set * @param theCalendar * the Calendar to use in the conversion operation * @throws SQLException * if an error occurs accessing the database. */ public void setTimestamp(String parameterName, Timestamp theTimestamp, Calendar theCalendar) throws SQLException; /** * Sets the target instance's transaction isolation level to one of a * discrete set of possible values. The transaction isolation level defines * the policy implemented on the database for maintaining the data values * consistent. * <p> * Keep in mind that setting a transaction isolation level has no effect * unless your driver and DBMS support it. * * @param level * the transaction isolation level. One of: * <ul> * <li>{@code Connection.TRANSACTION_READ_UNCOMMITTED}</li> * <li>{@code Connection.TRANSACTION_READ_COMMITTED}</li> * <li>{@code Connection.TRANSACTION_REPEATABLE_READ}</li> * <li>{@code Connection.TRANSACTION_SERIALIZABLE}</li> * </ul> * @throws SQLException * if an error occurs accessing the database. * @see java.sql.Connection */ public void setTransactionIsolation(int level) throws SQLException; /** * Sets the type of this {@code RowSet}. By default, the type is * non-scrollable. * * @param type * the type for the {@code RowSet}. One of: * <ul> * <li>{@code ResultSet.TYPE_FORWARD_ONLY}</li> * <li>{@code ResultSet.TYPE_SCROLL_INSENSITIVE}</li> * <li>{@code ResultSet.TYPE_SCROLL_SENSITIVE}</li> * </ul> * @throws SQLException * if an error occurs accessing the database. */ public void setType(int type) throws SQLException; /** * Sets the mapping of SQL User Defined Types (UDTs) to Java classes. The * Java classes must all implement the {@link java.sql.SQLData SQLData} * interface. * * @param theTypeMap * the names of SQL UDTs and the Java classes to which they are * mapped. * @throws SQLException * if an error occurs accessing the database. */ public void setTypeMap(Map<String, Class<?>> theTypeMap) throws SQLException; /** * Sets the URL used by this {@code RowSet} to access the database via a * {@code DriverManager}. The URL is optional - an alternative is to use a * database name to create a connection. * * @param theURL * the URL for the database. Can be {@code null}. * @throws SQLException * if an error occurs accessing the database. */ public void setUrl(String theURL) throws SQLException; /** * Sets the URL used by this RowSet to access the database via a * <code>DriverManager</code>. The URL is optional - an alternative is to * use a Data Source Name to create a connection. * * @param parameterIndex * index of the parameter to set, where the first parameter has * index = 1. * @param theURL * a java.net.URL containing the URL for the database. * @throws SQLException * if an error occurs accessing the database. */ public void setURL(int parameterIndex, URL theURL) throws SQLException; /** * Sets the {@code Username} property for the {@code RowSet}, used to * authenticate a connection to the database. * * @param theUsername * the new user name for this row set. * @throws SQLException * if an error occurs accessing the database. */ public void setUsername(String theUsername) throws SQLException; }