Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/java/sql/ResultSet.java
38829 views
/*1* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425package java.sql;2627import java.math.BigDecimal;28import java.util.Calendar;29import java.io.Reader;30import java.io.InputStream;3132/**33* A table of data representing a database result set, which34* is usually generated by executing a statement that queries the database.35*36* <P>A <code>ResultSet</code> object maintains a cursor pointing37* to its current row of data. Initially the cursor is positioned38* before the first row. The <code>next</code> method moves the39* cursor to the next row, and because it returns <code>false</code>40* when there are no more rows in the <code>ResultSet</code> object,41* it can be used in a <code>while</code> loop to iterate through42* the result set.43* <P>44* A default <code>ResultSet</code> object is not updatable and45* has a cursor that moves forward only. Thus, you can46* iterate through it only once and only from the first row to the47* last row. It is possible to48* produce <code>ResultSet</code> objects that are scrollable and/or49* updatable. The following code fragment, in which <code>con</code>50* is a valid <code>Connection</code> object, illustrates how to make51* a result set that is scrollable and insensitive to updates by others, and52* that is updatable. See <code>ResultSet</code> fields for other53* options.54* <PRE>55*56* Statement stmt = con.createStatement(57* ResultSet.TYPE_SCROLL_INSENSITIVE,58* ResultSet.CONCUR_UPDATABLE);59* ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");60* // rs will be scrollable, will not show changes made by others,61* // and will be updatable62*63* </PRE>64* The <code>ResultSet</code> interface provides65* <i>getter</i> methods (<code>getBoolean</code>, <code>getLong</code>, and so on)66* for retrieving column values from the current row.67* Values can be retrieved using either the index number of the68* column or the name of the column. In general, using the69* column index will be more efficient. Columns are numbered from 1.70* For maximum portability, result set columns within each row should be71* read in left-to-right order, and each column should be read only once.72*73* <P>For the getter methods, a JDBC driver attempts74* to convert the underlying data to the Java type specified in the75* getter method and returns a suitable Java value. The JDBC specification76* has a table showing the allowable mappings from SQL types to Java types77* that can be used by the <code>ResultSet</code> getter methods.78*79* <P>Column names used as input to getter methods are case80* insensitive. When a getter method is called with81* a column name and several columns have the same name,82* the value of the first matching column will be returned.83* The column name option is84* designed to be used when column names are used in the SQL85* query that generated the result set.86* For columns that are NOT explicitly named in the query, it87* is best to use column numbers. If column names are used, the88* programmer should take care to guarantee that they uniquely refer to89* the intended columns, which can be assured with the SQL <i>AS</i> clause.90* <P>91* A set of updater methods were added to this interface92* in the JDBC 2.0 API (Java™ 2 SDK,93* Standard Edition, version 1.2). The comments regarding parameters94* to the getter methods also apply to parameters to the95* updater methods.96*<P>97* The updater methods may be used in two ways:98* <ol>99* <LI>to update a column value in the current row. In a scrollable100* <code>ResultSet</code> object, the cursor can be moved backwards101* and forwards, to an absolute position, or to a position102* relative to the current row.103* The following code fragment updates the <code>NAME</code> column104* in the fifth row of the <code>ResultSet</code> object105* <code>rs</code> and then uses the method <code>updateRow</code>106* to update the data source table from which <code>rs</code> was derived.107* <PRE>108*109* rs.absolute(5); // moves the cursor to the fifth row of rs110* rs.updateString("NAME", "AINSWORTH"); // updates the111* // <code>NAME</code> column of row 5 to be <code>AINSWORTH</code>112* rs.updateRow(); // updates the row in the data source113*114* </PRE>115* <LI>to insert column values into the insert row. An updatable116* <code>ResultSet</code> object has a special row associated with117* it that serves as a staging area for building a row to be inserted.118* The following code fragment moves the cursor to the insert row, builds119* a three-column row, and inserts it into <code>rs</code> and into120* the data source table using the method <code>insertRow</code>.121* <PRE>122*123* rs.moveToInsertRow(); // moves cursor to the insert row124* rs.updateString(1, "AINSWORTH"); // updates the125* // first column of the insert row to be <code>AINSWORTH</code>126* rs.updateInt(2,35); // updates the second column to be <code>35</code>127* rs.updateBoolean(3, true); // updates the third column to <code>true</code>128* rs.insertRow();129* rs.moveToCurrentRow();130*131* </PRE>132* </ol>133* <P>A <code>ResultSet</code> object is automatically closed when the134* <code>Statement</code> object that135* generated it is closed, re-executed, or used136* to retrieve the next result from a sequence of multiple results.137*138* <P>The number, types and properties of a <code>ResultSet</code>139* object's columns are provided by the <code>ResultSetMetaData</code>140* object returned by the <code>ResultSet.getMetaData</code> method.141*142* @see Statement#executeQuery143* @see Statement#getResultSet144* @see ResultSetMetaData145*/146147public interface ResultSet extends Wrapper, AutoCloseable {148149/**150* Moves the cursor forward one row from its current position.151* A <code>ResultSet</code> cursor is initially positioned152* before the first row; the first call to the method153* <code>next</code> makes the first row the current row; the154* second call makes the second row the current row, and so on.155* <p>156* When a call to the <code>next</code> method returns <code>false</code>,157* the cursor is positioned after the last row. Any158* invocation of a <code>ResultSet</code> method which requires a159* current row will result in a <code>SQLException</code> being thrown.160* If the result set type is <code>TYPE_FORWARD_ONLY</code>, it is vendor specified161* whether their JDBC driver implementation will return <code>false</code> or162* throw an <code>SQLException</code> on a163* subsequent call to <code>next</code>.164*165* <P>If an input stream is open for the current row, a call166* to the method <code>next</code> will167* implicitly close it. A <code>ResultSet</code> object's168* warning chain is cleared when a new row is read.169*170* @return <code>true</code> if the new current row is valid;171* <code>false</code> if there are no more rows172* @exception SQLException if a database access error occurs or this method is173* called on a closed result set174*/175boolean next() throws SQLException;176177178/**179* Releases this <code>ResultSet</code> object's database and180* JDBC resources immediately instead of waiting for181* this to happen when it is automatically closed.182*183* <P>The closing of a <code>ResultSet</code> object does <strong>not</strong> close the <code>Blob</code>,184* <code>Clob</code> or <code>NClob</code> objects created by the <code>ResultSet</code>. <code>Blob</code>,185* <code>Clob</code> or <code>NClob</code> objects remain valid for at least the duration of the186* transaction in which they are created, unless their <code>free</code> method is invoked.187*<p>188* When a <code>ResultSet</code> is closed, any <code>ResultSetMetaData</code>189* instances that were created by calling the <code>getMetaData</code>190* method remain accessible.191*192* <P><B>Note:</B> A <code>ResultSet</code> object193* is automatically closed by the194* <code>Statement</code> object that generated it when195* that <code>Statement</code> object is closed,196* re-executed, or is used to retrieve the next result from a197* sequence of multiple results.198*<p>199* Calling the method <code>close</code> on a <code>ResultSet</code>200* object that is already closed is a no-op.201*202*203* @exception SQLException if a database access error occurs204*/205void close() throws SQLException;206207/**208* Reports whether209* the last column read had a value of SQL <code>NULL</code>.210* Note that you must first call one of the getter methods211* on a column to try to read its value and then call212* the method <code>wasNull</code> to see if the value read was213* SQL <code>NULL</code>.214*215* @return <code>true</code> if the last column value read was SQL216* <code>NULL</code> and <code>false</code> otherwise217* @exception SQLException if a database access error occurs or this method is218* called on a closed result set219*/220boolean wasNull() throws SQLException;221222// Methods for accessing results by column index223224/**225* Retrieves the value of the designated column in the current row226* of this <code>ResultSet</code> object as227* a <code>String</code> in the Java programming language.228*229* @param columnIndex the first column is 1, the second is 2, ...230* @return the column value; if the value is SQL <code>NULL</code>, the231* value returned is <code>null</code>232* @exception SQLException if the columnIndex is not valid;233* if a database access error occurs or this method is234* called on a closed result set235*/236String getString(int columnIndex) throws SQLException;237238/**239* Retrieves the value of the designated column in the current row240* of this <code>ResultSet</code> object as241* a <code>boolean</code> in the Java programming language.242*243* <P>If the designated column has a datatype of CHAR or VARCHAR244* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT245* and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype246* of CHAR or VARCHAR247* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT248* and contains a 1, a value of <code>true</code> is returned.249*250* @param columnIndex the first column is 1, the second is 2, ...251* @return the column value; if the value is SQL <code>NULL</code>, the252* value returned is <code>false</code>253* @exception SQLException if the columnIndex is not valid;254* if a database access error occurs or this method is255* called on a closed result set256*/257boolean getBoolean(int columnIndex) throws SQLException;258259/**260* Retrieves the value of the designated column in the current row261* of this <code>ResultSet</code> object as262* a <code>byte</code> in the Java programming language.263*264* @param columnIndex the first column is 1, the second is 2, ...265* @return the column value; if the value is SQL <code>NULL</code>, the266* value returned is <code>0</code>267* @exception SQLException if the columnIndex is not valid;268* if a database access error occurs or this method is269* called on a closed result set270*/271byte getByte(int columnIndex) throws SQLException;272273/**274* Retrieves the value of the designated column in the current row275* of this <code>ResultSet</code> object as276* a <code>short</code> in the Java programming language.277*278* @param columnIndex the first column is 1, the second is 2, ...279* @return the column value; if the value is SQL <code>NULL</code>, the280* value returned is <code>0</code>281* @exception SQLException if the columnIndex is not valid;282* if a database access error occurs or this method is283* called on a closed result set284*/285short getShort(int columnIndex) throws SQLException;286287/**288* Retrieves the value of the designated column in the current row289* of this <code>ResultSet</code> object as290* an <code>int</code> in the Java programming language.291*292* @param columnIndex the first column is 1, the second is 2, ...293* @return the column value; if the value is SQL <code>NULL</code>, the294* value returned is <code>0</code>295* @exception SQLException if the columnIndex is not valid;296* if a database access error occurs or this method is297* called on a closed result set298*/299int getInt(int columnIndex) throws SQLException;300301/**302* Retrieves the value of the designated column in the current row303* of this <code>ResultSet</code> object as304* a <code>long</code> in the Java programming language.305*306* @param columnIndex the first column is 1, the second is 2, ...307* @return the column value; if the value is SQL <code>NULL</code>, the308* value returned is <code>0</code>309* @exception SQLException if the columnIndex is not valid;310* if a database access error occurs or this method is311* called on a closed result set312*/313long getLong(int columnIndex) throws SQLException;314315/**316* Retrieves the value of the designated column in the current row317* of this <code>ResultSet</code> object as318* a <code>float</code> in the Java programming language.319*320* @param columnIndex the first column is 1, the second is 2, ...321* @return the column value; if the value is SQL <code>NULL</code>, the322* value returned is <code>0</code>323* @exception SQLException if the columnIndex is not valid;324* if a database access error occurs or this method is325* called on a closed result set326*/327float getFloat(int columnIndex) throws SQLException;328329/**330* Retrieves the value of the designated column in the current row331* of this <code>ResultSet</code> object as332* a <code>double</code> in the Java programming language.333*334* @param columnIndex the first column is 1, the second is 2, ...335* @return the column value; if the value is SQL <code>NULL</code>, the336* value returned is <code>0</code>337* @exception SQLException if the columnIndex is not valid;338* if a database access error occurs or this method is339* called on a closed result set340*/341double getDouble(int columnIndex) throws SQLException;342343/**344* Retrieves the value of the designated column in the current row345* of this <code>ResultSet</code> object as346* a <code>java.sql.BigDecimal</code> in the Java programming language.347*348* @param columnIndex the first column is 1, the second is 2, ...349* @param scale the number of digits to the right of the decimal point350* @return the column value; if the value is SQL <code>NULL</code>, the351* value returned is <code>null</code>352* @exception SQLException if the columnIndex is not valid;353* if a database access error occurs or this method is354* called on a closed result set355* @exception SQLFeatureNotSupportedException if the JDBC driver does not support356* this method357* @deprecated Use {@code getBigDecimal(int columnIndex)}358* or {@code getBigDecimal(String columnLabel)}359*/360@Deprecated361BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException;362363/**364* Retrieves the value of the designated column in the current row365* of this <code>ResultSet</code> object as366* a <code>byte</code> array in the Java programming language.367* The bytes represent the raw values returned by the driver.368*369* @param columnIndex the first column is 1, the second is 2, ...370* @return the column value; if the value is SQL <code>NULL</code>, the371* value returned is <code>null</code>372* @exception SQLException if the columnIndex is not valid;373* if a database access error occurs or this method is374* called on a closed result set375*/376byte[] getBytes(int columnIndex) throws SQLException;377378/**379* Retrieves the value of the designated column in the current row380* of this <code>ResultSet</code> object as381* a <code>java.sql.Date</code> object in the Java programming language.382*383* @param columnIndex the first column is 1, the second is 2, ...384* @return the column value; if the value is SQL <code>NULL</code>, the385* value returned is <code>null</code>386* @exception SQLException if the columnIndex is not valid;387* if a database access error occurs or this method is388* called on a closed result set389*/390java.sql.Date getDate(int columnIndex) throws SQLException;391392/**393* Retrieves the value of the designated column in the current row394* of this <code>ResultSet</code> object as395* a <code>java.sql.Time</code> object in the Java programming language.396*397* @param columnIndex the first column is 1, the second is 2, ...398* @return the column value; if the value is SQL <code>NULL</code>, the399* value returned is <code>null</code>400* @exception SQLException if the columnIndex is not valid;401* if a database access error occurs or this method is402* called on a closed result set403*/404java.sql.Time getTime(int columnIndex) throws SQLException;405406/**407* Retrieves the value of the designated column in the current row408* of this <code>ResultSet</code> object as409* a <code>java.sql.Timestamp</code> object in the Java programming language.410*411* @param columnIndex the first column is 1, the second is 2, ...412* @return the column value; if the value is SQL <code>NULL</code>, the413* value returned is <code>null</code>414* @exception SQLException if the columnIndex is not valid;415* if a database access error occurs or this method is416* called on a closed result set417*/418java.sql.Timestamp getTimestamp(int columnIndex) throws SQLException;419420/**421* Retrieves the value of the designated column in the current row422* of this <code>ResultSet</code> object as423* a stream of ASCII characters. The value can then be read in chunks from the424* stream. This method is particularly425* suitable for retrieving large <code>LONGVARCHAR</code> values.426* The JDBC driver will427* do any necessary conversion from the database format into ASCII.428*429* <P><B>Note:</B> All the data in the returned stream must be430* read prior to getting the value of any other column. The next431* call to a getter method implicitly closes the stream. Also, a432* stream may return <code>0</code> when the method433* <code>InputStream.available</code>434* is called whether there is data available or not.435*436* @param columnIndex the first column is 1, the second is 2, ...437* @return a Java input stream that delivers the database column value438* as a stream of one-byte ASCII characters;439* if the value is SQL <code>NULL</code>, the440* value returned is <code>null</code>441* @exception SQLException if the columnIndex is not valid;442* if a database access error occurs or this method is443* called on a closed result set444*/445java.io.InputStream getAsciiStream(int columnIndex) throws SQLException;446447/**448* Retrieves the value of the designated column in the current row449* of this <code>ResultSet</code> object as450* as a stream of two-byte 3 characters. The first byte is451* the high byte; the second byte is the low byte.452*453* The value can then be read in chunks from the454* stream. This method is particularly455* suitable for retrieving large <code>LONGVARCHAR</code>values. The456* JDBC driver will do any necessary conversion from the database457* format into Unicode.458*459* <P><B>Note:</B> All the data in the returned stream must be460* read prior to getting the value of any other column. The next461* call to a getter method implicitly closes the stream.462* Also, a stream may return <code>0</code> when the method463* <code>InputStream.available</code>464* is called, whether there is data available or not.465*466* @param columnIndex the first column is 1, the second is 2, ...467* @return a Java input stream that delivers the database column value468* as a stream of two-byte Unicode characters;469* if the value is SQL <code>NULL</code>, the value returned is470* <code>null</code>471*472* @exception SQLException if the columnIndex is not valid;473* if a database access error occurs or this method is474* called on a closed result set475* @exception SQLFeatureNotSupportedException if the JDBC driver does not support476* this method477* @deprecated use <code>getCharacterStream</code> in place of478* <code>getUnicodeStream</code>479*/480@Deprecated481java.io.InputStream getUnicodeStream(int columnIndex) throws SQLException;482483/**484* Retrieves the value of the designated column in the current row485* of this <code>ResultSet</code> object as a stream of486* uninterpreted bytes. The value can then be read in chunks from the487* stream. This method is particularly488* suitable for retrieving large <code>LONGVARBINARY</code> values.489*490* <P><B>Note:</B> All the data in the returned stream must be491* read prior to getting the value of any other column. The next492* call to a getter method implicitly closes the stream. Also, a493* stream may return <code>0</code> when the method494* <code>InputStream.available</code>495* is called whether there is data available or not.496*497* @param columnIndex the first column is 1, the second is 2, ...498* @return a Java input stream that delivers the database column value499* as a stream of uninterpreted bytes;500* if the value is SQL <code>NULL</code>, the value returned is501* <code>null</code>502* @exception SQLException if the columnIndex is not valid;503* if a database access error occurs or this method is504* called on a closed result set505*/506java.io.InputStream getBinaryStream(int columnIndex)507throws SQLException;508509510// Methods for accessing results by column label511512/**513* Retrieves the value of the designated column in the current row514* of this <code>ResultSet</code> object as515* a <code>String</code> in the Java programming language.516*517* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column518* @return the column value; if the value is SQL <code>NULL</code>, the519* value returned is <code>null</code>520* @exception SQLException if the columnLabel is not valid;521* if a database access error occurs or this method is522* called on a closed result set523*/524String getString(String columnLabel) throws SQLException;525526/**527* Retrieves the value of the designated column in the current row528* of this <code>ResultSet</code> object as529* a <code>boolean</code> in the Java programming language.530*531* <P>If the designated column has a datatype of CHAR or VARCHAR532* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT533* and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype534* of CHAR or VARCHAR535* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT536* and contains a 1, a value of <code>true</code> is returned.537*538* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column539* @return the column value; if the value is SQL <code>NULL</code>, the540* value returned is <code>false</code>541* @exception SQLException if the columnLabel is not valid;542* if a database access error occurs or this method is543* called on a closed result set544*/545boolean getBoolean(String columnLabel) throws SQLException;546547/**548* Retrieves the value of the designated column in the current row549* of this <code>ResultSet</code> object as550* a <code>byte</code> in the Java programming language.551*552* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column553* @return the column value; if the value is SQL <code>NULL</code>, the554* value returned is <code>0</code>555* @exception SQLException if the columnLabel is not valid;556* if a database access error occurs or this method is557* called on a closed result set558*/559byte getByte(String columnLabel) throws SQLException;560561/**562* Retrieves the value of the designated column in the current row563* of this <code>ResultSet</code> object as564* a <code>short</code> in the Java programming language.565*566* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column567* @return the column value; if the value is SQL <code>NULL</code>, the568* value returned is <code>0</code>569* @exception SQLException if the columnLabel is not valid;570* if a database access error occurs or this method is571* called on a closed result set572*/573short getShort(String columnLabel) throws SQLException;574575/**576* Retrieves the value of the designated column in the current row577* of this <code>ResultSet</code> object as578* an <code>int</code> in the Java programming language.579*580* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column581* @return the column value; if the value is SQL <code>NULL</code>, the582* value returned is <code>0</code>583* @exception SQLException if the columnLabel is not valid;584* if a database access error occurs or this method is585* called on a closed result set586*/587int getInt(String columnLabel) throws SQLException;588589/**590* Retrieves the value of the designated column in the current row591* of this <code>ResultSet</code> object as592* a <code>long</code> in the Java programming language.593*594* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column595* @return the column value; if the value is SQL <code>NULL</code>, the596* value returned is <code>0</code>597* @exception SQLException if the columnLabel is not valid;598* if a database access error occurs or this method is599* called on a closed result set600*/601long getLong(String columnLabel) throws SQLException;602603/**604* Retrieves the value of the designated column in the current row605* of this <code>ResultSet</code> object as606* a <code>float</code> in the Java programming language.607*608* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column609* @return the column value; if the value is SQL <code>NULL</code>, the610* value returned is <code>0</code>611* @exception SQLException if the columnLabel is not valid;612* if a database access error occurs or this method is613* called on a closed result set614*/615float getFloat(String columnLabel) throws SQLException;616617/**618* Retrieves the value of the designated column in the current row619* of this <code>ResultSet</code> object as620* a <code>double</code> in the Java programming language.621*622* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column623* @return the column value; if the value is SQL <code>NULL</code>, the624* value returned is <code>0</code>625* @exception SQLException if the columnLabel is not valid;626* if a database access error occurs or this method is627* called on a closed result set628*/629double getDouble(String columnLabel) throws SQLException;630631/**632* Retrieves the value of the designated column in the current row633* of this <code>ResultSet</code> object as634* a <code>java.math.BigDecimal</code> in the Java programming language.635*636* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column637* @param scale the number of digits to the right of the decimal point638* @return the column value; if the value is SQL <code>NULL</code>, the639* value returned is <code>null</code>640* @exception SQLException if the columnLabel is not valid;641* if a database access error occurs or this method is642* called on a closed result set643* @exception SQLFeatureNotSupportedException if the JDBC driver does not support644* this method645* @deprecated Use {@code getBigDecimal(int columnIndex)}646* or {@code getBigDecimal(String columnLabel)}647*/648@Deprecated649BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException;650651/**652* Retrieves the value of the designated column in the current row653* of this <code>ResultSet</code> object as654* a <code>byte</code> array in the Java programming language.655* The bytes represent the raw values returned by the driver.656*657* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column658* @return the column value; if the value is SQL <code>NULL</code>, the659* value returned is <code>null</code>660* @exception SQLException if the columnLabel is not valid;661* if a database access error occurs or this method is662* called on a closed result set663*/664byte[] getBytes(String columnLabel) throws SQLException;665666/**667* Retrieves the value of the designated column in the current row668* of this <code>ResultSet</code> object as669* a <code>java.sql.Date</code> object in the Java programming language.670*671* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column672* @return the column value; if the value is SQL <code>NULL</code>, the673* value returned is <code>null</code>674* @exception SQLException if the columnLabel is not valid;675* if a database access error occurs or this method is676* called on a closed result set677*/678java.sql.Date getDate(String columnLabel) throws SQLException;679680/**681* Retrieves the value of the designated column in the current row682* of this <code>ResultSet</code> object as683* a <code>java.sql.Time</code> object in the Java programming language.684*685* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column686* @return the column value;687* if the value is SQL <code>NULL</code>,688* the value returned is <code>null</code>689* @exception SQLException if the columnLabel is not valid;690* if a database access error occurs or this method is691* called on a closed result set692*/693java.sql.Time getTime(String columnLabel) throws SQLException;694695/**696* Retrieves the value of the designated column in the current row697* of this <code>ResultSet</code> object as698* a <code>java.sql.Timestamp</code> object in the Java programming language.699*700* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column701* @return the column value; if the value is SQL <code>NULL</code>, the702* value returned is <code>null</code>703* @exception SQLException if the columnLabel is not valid;704* if a database access error occurs or this method is705* called on a closed result set706*/707java.sql.Timestamp getTimestamp(String columnLabel) throws SQLException;708709/**710* Retrieves the value of the designated column in the current row711* of this <code>ResultSet</code> object as a stream of712* ASCII characters. The value can then be read in chunks from the713* stream. This method is particularly714* suitable for retrieving large <code>LONGVARCHAR</code> values.715* The JDBC driver will716* do any necessary conversion from the database format into ASCII.717*718* <P><B>Note:</B> All the data in the returned stream must be719* read prior to getting the value of any other column. The next720* call to a getter method implicitly closes the stream. Also, a721* stream may return <code>0</code> when the method <code>available</code>722* is called whether there is data available or not.723*724* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column725* @return a Java input stream that delivers the database column value726* as a stream of one-byte ASCII characters.727* If the value is SQL <code>NULL</code>,728* the value returned is <code>null</code>.729* @exception SQLException if the columnLabel is not valid;730* if a database access error occurs or this method is731* called on a closed result set732*/733java.io.InputStream getAsciiStream(String columnLabel) throws SQLException;734735/**736* Retrieves the value of the designated column in the current row737* of this <code>ResultSet</code> object as a stream of two-byte738* Unicode characters. The first byte is the high byte; the second739* byte is the low byte.740*741* The value can then be read in chunks from the742* stream. This method is particularly743* suitable for retrieving large <code>LONGVARCHAR</code> values.744* The JDBC technology-enabled driver will745* do any necessary conversion from the database format into Unicode.746*747* <P><B>Note:</B> All the data in the returned stream must be748* read prior to getting the value of any other column. The next749* call to a getter method implicitly closes the stream.750* Also, a stream may return <code>0</code> when the method751* <code>InputStream.available</code> is called, whether there752* is data available or not.753*754* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column755* @return a Java input stream that delivers the database column value756* as a stream of two-byte Unicode characters.757* If the value is SQL <code>NULL</code>, the value returned758* is <code>null</code>.759* @exception SQLException if the columnLabel is not valid;760* if a database access error occurs or this method is761* called on a closed result set762* @exception SQLFeatureNotSupportedException if the JDBC driver does not support763* this method764* @deprecated use <code>getCharacterStream</code> instead765*/766@Deprecated767java.io.InputStream getUnicodeStream(String columnLabel) throws SQLException;768769/**770* Retrieves the value of the designated column in the current row771* of this <code>ResultSet</code> object as a stream of uninterpreted772* <code>byte</code>s.773* The value can then be read in chunks from the774* stream. This method is particularly775* suitable for retrieving large <code>LONGVARBINARY</code>776* values.777*778* <P><B>Note:</B> All the data in the returned stream must be779* read prior to getting the value of any other column. The next780* call to a getter method implicitly closes the stream. Also, a781* stream may return <code>0</code> when the method <code>available</code>782* is called whether there is data available or not.783*784* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column785* @return a Java input stream that delivers the database column value786* as a stream of uninterpreted bytes;787* if the value is SQL <code>NULL</code>, the result is <code>null</code>788* @exception SQLException if the columnLabel is not valid;789* if a database access error occurs or this method is790* called on a closed result set791*/792java.io.InputStream getBinaryStream(String columnLabel)793throws SQLException;794795796// Advanced features:797798/**799* Retrieves the first warning reported by calls on this800* <code>ResultSet</code> object.801* Subsequent warnings on this <code>ResultSet</code> object802* will be chained to the <code>SQLWarning</code> object that803* this method returns.804*805* <P>The warning chain is automatically cleared each time a new806* row is read. This method may not be called on a <code>ResultSet</code>807* object that has been closed; doing so will cause an808* <code>SQLException</code> to be thrown.809* <P>810* <B>Note:</B> This warning chain only covers warnings caused811* by <code>ResultSet</code> methods. Any warning caused by812* <code>Statement</code> methods813* (such as reading OUT parameters) will be chained on the814* <code>Statement</code> object.815*816* @return the first <code>SQLWarning</code> object reported or817* <code>null</code> if there are none818* @exception SQLException if a database access error occurs or this method is819* called on a closed result set820*/821SQLWarning getWarnings() throws SQLException;822823/**824* Clears all warnings reported on this <code>ResultSet</code> object.825* After this method is called, the method <code>getWarnings</code>826* returns <code>null</code> until a new warning is827* reported for this <code>ResultSet</code> object.828*829* @exception SQLException if a database access error occurs or this method is830* called on a closed result set831*/832void clearWarnings() throws SQLException;833834/**835* Retrieves the name of the SQL cursor used by this <code>ResultSet</code>836* object.837*838* <P>In SQL, a result table is retrieved through a cursor that is839* named. The current row of a result set can be updated or deleted840* using a positioned update/delete statement that references the841* cursor name. To insure that the cursor has the proper isolation842* level to support update, the cursor's <code>SELECT</code> statement843* should be of the form <code>SELECT FOR UPDATE</code>. If844* <code>FOR UPDATE</code> is omitted, the positioned updates may fail.845*846* <P>The JDBC API supports this SQL feature by providing the name of the847* SQL cursor used by a <code>ResultSet</code> object.848* The current row of a <code>ResultSet</code> object849* is also the current row of this SQL cursor.850*851* @return the SQL name for this <code>ResultSet</code> object's cursor852* @exception SQLException if a database access error occurs or this method is called on a closed result set853* @exception SQLFeatureNotSupportedException if the JDBC driver does not support854* this method855*/856String getCursorName() throws SQLException;857858/**859* Retrieves the number, types and properties of860* this <code>ResultSet</code> object's columns.861*862* @return the description of this <code>ResultSet</code> object's columns863* @exception SQLException if a database access error occurs or this method is864* called on a closed result set865*/866ResultSetMetaData getMetaData() throws SQLException;867868/**869* <p>Gets the value of the designated column in the current row870* of this <code>ResultSet</code> object as871* an <code>Object</code> in the Java programming language.872*873* <p>This method will return the value of the given column as a874* Java object. The type of the Java object will be the default875* Java object type corresponding to the column's SQL type,876* following the mapping for built-in types specified in the JDBC877* specification. If the value is an SQL <code>NULL</code>,878* the driver returns a Java <code>null</code>.879*880* <p>This method may also be used to read database-specific881* abstract data types.882*883* In the JDBC 2.0 API, the behavior of method884* <code>getObject</code> is extended to materialize885* data of SQL user-defined types.886* <p>887* If <code>Connection.getTypeMap</code> does not throw a888* <code>SQLFeatureNotSupportedException</code>,889* then when a column contains a structured or distinct value,890* the behavior of this method is as891* if it were a call to: <code>getObject(columnIndex,892* this.getStatement().getConnection().getTypeMap())</code>.893*894* If <code>Connection.getTypeMap</code> does throw a895* <code>SQLFeatureNotSupportedException</code>,896* then structured values are not supported, and distinct values897* are mapped to the default Java class as determined by the898* underlying SQL type of the DISTINCT type.899*900* @param columnIndex the first column is 1, the second is 2, ...901* @return a <code>java.lang.Object</code> holding the column value902* @exception SQLException if the columnIndex is not valid;903* if a database access error occurs or this method is904* called on a closed result set905*/906Object getObject(int columnIndex) throws SQLException;907908/**909* <p>Gets the value of the designated column in the current row910* of this <code>ResultSet</code> object as911* an <code>Object</code> in the Java programming language.912*913* <p>This method will return the value of the given column as a914* Java object. The type of the Java object will be the default915* Java object type corresponding to the column's SQL type,916* following the mapping for built-in types specified in the JDBC917* specification. If the value is an SQL <code>NULL</code>,918* the driver returns a Java <code>null</code>.919* <P>920* This method may also be used to read database-specific921* abstract data types.922* <P>923* In the JDBC 2.0 API, the behavior of the method924* <code>getObject</code> is extended to materialize925* data of SQL user-defined types. When a column contains926* a structured or distinct value, the behavior of this method is as927* if it were a call to: <code>getObject(columnIndex,928* this.getStatement().getConnection().getTypeMap())</code>.929*930* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column931* @return a <code>java.lang.Object</code> holding the column value932* @exception SQLException if the columnLabel is not valid;933* if a database access error occurs or this method is934* called on a closed result set935*/936Object getObject(String columnLabel) throws SQLException;937938//----------------------------------------------------------------939940/**941* Maps the given <code>ResultSet</code> column label to its942* <code>ResultSet</code> column index.943*944* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column945* @return the column index of the given column name946* @exception SQLException if the <code>ResultSet</code> object947* does not contain a column labeled <code>columnLabel</code>, a database access error occurs948* or this method is called on a closed result set949*/950int findColumn(String columnLabel) throws SQLException;951952953//--------------------------JDBC 2.0-----------------------------------954955//---------------------------------------------------------------------956// Getters and Setters957//---------------------------------------------------------------------958959/**960* Retrieves the value of the designated column in the current row961* of this <code>ResultSet</code> object as a962* <code>java.io.Reader</code> object.963* @return a <code>java.io.Reader</code> object that contains the column964* value; if the value is SQL <code>NULL</code>, the value returned is965* <code>null</code> in the Java programming language.966* @param columnIndex the first column is 1, the second is 2, ...967* @exception SQLException if the columnIndex is not valid;968* if a database access error occurs or this method is969* called on a closed result set970* @since 1.2971*/972java.io.Reader getCharacterStream(int columnIndex) throws SQLException;973974/**975* Retrieves the value of the designated column in the current row976* of this <code>ResultSet</code> object as a977* <code>java.io.Reader</code> object.978*979* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column980* @return a <code>java.io.Reader</code> object that contains the column981* value; if the value is SQL <code>NULL</code>, the value returned is982* <code>null</code> in the Java programming language983* @exception SQLException if the columnLabel is not valid;984* if a database access error occurs or this method is985* called on a closed result set986* @since 1.2987*/988java.io.Reader getCharacterStream(String columnLabel) throws SQLException;989990/**991* Retrieves the value of the designated column in the current row992* of this <code>ResultSet</code> object as a993* <code>java.math.BigDecimal</code> with full precision.994*995* @param columnIndex the first column is 1, the second is 2, ...996* @return the column value (full precision);997* if the value is SQL <code>NULL</code>, the value returned is998* <code>null</code> in the Java programming language.999* @exception SQLException if the columnIndex is not valid;1000* if a database access error occurs or this method is1001* called on a closed result set1002* @since 1.21003*/1004BigDecimal getBigDecimal(int columnIndex) throws SQLException;10051006/**1007* Retrieves the value of the designated column in the current row1008* of this <code>ResultSet</code> object as a1009* <code>java.math.BigDecimal</code> with full precision.1010*1011* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1012* @return the column value (full precision);1013* if the value is SQL <code>NULL</code>, the value returned is1014* <code>null</code> in the Java programming language.1015* @exception SQLException if the columnLabel is not valid;1016* if a database access error occurs or this method is1017* called on a closed result set1018* @since 1.21019*1020*/1021BigDecimal getBigDecimal(String columnLabel) throws SQLException;10221023//---------------------------------------------------------------------1024// Traversal/Positioning1025//---------------------------------------------------------------------10261027/**1028* Retrieves whether the cursor is before the first row in1029* this <code>ResultSet</code> object.1030* <p>1031* <strong>Note:</strong>Support for the <code>isBeforeFirst</code> method1032* is optional for <code>ResultSet</code>s with a result1033* set type of <code>TYPE_FORWARD_ONLY</code>1034*1035* @return <code>true</code> if the cursor is before the first row;1036* <code>false</code> if the cursor is at any other position or the1037* result set contains no rows1038* @exception SQLException if a database access error occurs or this method is1039* called on a closed result set1040* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1041* this method1042* @since 1.21043*/1044boolean isBeforeFirst() throws SQLException;10451046/**1047* Retrieves whether the cursor is after the last row in1048* this <code>ResultSet</code> object.1049* <p>1050* <strong>Note:</strong>Support for the <code>isAfterLast</code> method1051* is optional for <code>ResultSet</code>s with a result1052* set type of <code>TYPE_FORWARD_ONLY</code>1053*1054* @return <code>true</code> if the cursor is after the last row;1055* <code>false</code> if the cursor is at any other position or the1056* result set contains no rows1057* @exception SQLException if a database access error occurs or this method is1058* called on a closed result set1059* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1060* this method1061* @since 1.21062*/1063boolean isAfterLast() throws SQLException;10641065/**1066* Retrieves whether the cursor is on the first row of1067* this <code>ResultSet</code> object.1068* <p>1069* <strong>Note:</strong>Support for the <code>isFirst</code> method1070* is optional for <code>ResultSet</code>s with a result1071* set type of <code>TYPE_FORWARD_ONLY</code>1072*1073* @return <code>true</code> if the cursor is on the first row;1074* <code>false</code> otherwise1075* @exception SQLException if a database access error occurs or this method is1076* called on a closed result set1077* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1078* this method1079* @since 1.21080*/1081boolean isFirst() throws SQLException;10821083/**1084* Retrieves whether the cursor is on the last row of1085* this <code>ResultSet</code> object.1086* <strong>Note:</strong> Calling the method <code>isLast</code> may be expensive1087* because the JDBC driver1088* might need to fetch ahead one row in order to determine1089* whether the current row is the last row in the result set.1090* <p>1091* <strong>Note:</strong> Support for the <code>isLast</code> method1092* is optional for <code>ResultSet</code>s with a result1093* set type of <code>TYPE_FORWARD_ONLY</code>1094* @return <code>true</code> if the cursor is on the last row;1095* <code>false</code> otherwise1096* @exception SQLException if a database access error occurs or this method is1097* called on a closed result set1098* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1099* this method1100* @since 1.21101*/1102boolean isLast() throws SQLException;11031104/**1105* Moves the cursor to the front of1106* this <code>ResultSet</code> object, just before the1107* first row. This method has no effect if the result set contains no rows.1108*1109* @exception SQLException if a database access error1110* occurs; this method is called on a closed result set or the1111* result set type is <code>TYPE_FORWARD_ONLY</code>1112* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1113* this method1114* @since 1.21115*/1116void beforeFirst() throws SQLException;11171118/**1119* Moves the cursor to the end of1120* this <code>ResultSet</code> object, just after the1121* last row. This method has no effect if the result set contains no rows.1122* @exception SQLException if a database access error1123* occurs; this method is called on a closed result set1124* or the result set type is <code>TYPE_FORWARD_ONLY</code>1125* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1126* this method1127* @since 1.21128*/1129void afterLast() throws SQLException;11301131/**1132* Moves the cursor to the first row in1133* this <code>ResultSet</code> object.1134*1135* @return <code>true</code> if the cursor is on a valid row;1136* <code>false</code> if there are no rows in the result set1137* @exception SQLException if a database access error1138* occurs; this method is called on a closed result set1139* or the result set type is <code>TYPE_FORWARD_ONLY</code>1140* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1141* this method1142* @since 1.21143*/1144boolean first() throws SQLException;11451146/**1147* Moves the cursor to the last row in1148* this <code>ResultSet</code> object.1149*1150* @return <code>true</code> if the cursor is on a valid row;1151* <code>false</code> if there are no rows in the result set1152* @exception SQLException if a database access error1153* occurs; this method is called on a closed result set1154* or the result set type is <code>TYPE_FORWARD_ONLY</code>1155* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1156* this method1157* @since 1.21158*/1159boolean last() throws SQLException;11601161/**1162* Retrieves the current row number. The first row is number 1, the1163* second number 2, and so on.1164* <p>1165* <strong>Note:</strong>Support for the <code>getRow</code> method1166* is optional for <code>ResultSet</code>s with a result1167* set type of <code>TYPE_FORWARD_ONLY</code>1168*1169* @return the current row number; <code>0</code> if there is no current row1170* @exception SQLException if a database access error occurs1171* or this method is called on a closed result set1172* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1173* this method1174* @since 1.21175*/1176int getRow() throws SQLException;11771178/**1179* Moves the cursor to the given row number in1180* this <code>ResultSet</code> object.1181*1182* <p>If the row number is positive, the cursor moves to1183* the given row number with respect to the1184* beginning of the result set. The first row is row 1, the second1185* is row 2, and so on.1186*1187* <p>If the given row number is negative, the cursor moves to1188* an absolute row position with respect to1189* the end of the result set. For example, calling the method1190* <code>absolute(-1)</code> positions the1191* cursor on the last row; calling the method <code>absolute(-2)</code>1192* moves the cursor to the next-to-last row, and so on.1193*1194* <p>If the row number specified is zero, the cursor is moved to1195* before the first row.1196*1197* <p>An attempt to position the cursor beyond the first/last row in1198* the result set leaves the cursor before the first row or after1199* the last row.1200*1201* <p><B>Note:</B> Calling <code>absolute(1)</code> is the same1202* as calling <code>first()</code>. Calling <code>absolute(-1)</code>1203* is the same as calling <code>last()</code>.1204*1205* @param row the number of the row to which the cursor should move.1206* A value of zero indicates that the cursor will be positioned1207* before the first row; a positive number indicates the row number1208* counting from the beginning of the result set; a negative number1209* indicates the row number counting from the end of the result set1210* @return <code>true</code> if the cursor is moved to a position in this1211* <code>ResultSet</code> object;1212* <code>false</code> if the cursor is before the first row or after the1213* last row1214* @exception SQLException if a database access error1215* occurs; this method is called on a closed result set1216* or the result set type is <code>TYPE_FORWARD_ONLY</code>1217* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1218* this method1219* @since 1.21220*/1221boolean absolute( int row ) throws SQLException;12221223/**1224* Moves the cursor a relative number of rows, either positive or negative.1225* Attempting to move beyond the first/last row in the1226* result set positions the cursor before/after the1227* the first/last row. Calling <code>relative(0)</code> is valid, but does1228* not change the cursor position.1229*1230* <p>Note: Calling the method <code>relative(1)</code>1231* is identical to calling the method <code>next()</code> and1232* calling the method <code>relative(-1)</code> is identical1233* to calling the method <code>previous()</code>.1234*1235* @param rows an <code>int</code> specifying the number of rows to1236* move from the current row; a positive number moves the cursor1237* forward; a negative number moves the cursor backward1238* @return <code>true</code> if the cursor is on a row;1239* <code>false</code> otherwise1240* @exception SQLException if a database access error occurs; this method1241* is called on a closed result set or the result set type is1242* <code>TYPE_FORWARD_ONLY</code>1243* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1244* this method1245* @since 1.21246*/1247boolean relative( int rows ) throws SQLException;12481249/**1250* Moves the cursor to the previous row in this1251* <code>ResultSet</code> object.1252*<p>1253* When a call to the <code>previous</code> method returns <code>false</code>,1254* the cursor is positioned before the first row. Any invocation of a1255* <code>ResultSet</code> method which requires a current row will result in a1256* <code>SQLException</code> being thrown.1257*<p>1258* If an input stream is open for the current row, a call to the method1259* <code>previous</code> will implicitly close it. A <code>ResultSet</code>1260* object's warning change is cleared when a new row is read.1261*<p>1262*1263* @return <code>true</code> if the cursor is now positioned on a valid row;1264* <code>false</code> if the cursor is positioned before the first row1265* @exception SQLException if a database access error1266* occurs; this method is called on a closed result set1267* or the result set type is <code>TYPE_FORWARD_ONLY</code>1268* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1269* this method1270* @since 1.21271*/1272boolean previous() throws SQLException;12731274//---------------------------------------------------------------------1275// Properties1276//---------------------------------------------------------------------12771278/**1279* The constant indicating that the rows in a result set will be1280* processed in a forward direction; first-to-last.1281* This constant is used by the method <code>setFetchDirection</code>1282* as a hint to the driver, which the driver may ignore.1283* @since 1.21284*/1285int FETCH_FORWARD = 1000;12861287/**1288* The constant indicating that the rows in a result set will be1289* processed in a reverse direction; last-to-first.1290* This constant is used by the method <code>setFetchDirection</code>1291* as a hint to the driver, which the driver may ignore.1292* @since 1.21293*/1294int FETCH_REVERSE = 1001;12951296/**1297* The constant indicating that the order in which rows in a1298* result set will be processed is unknown.1299* This constant is used by the method <code>setFetchDirection</code>1300* as a hint to the driver, which the driver may ignore.1301*/1302int FETCH_UNKNOWN = 1002;13031304/**1305* Gives a hint as to the direction in which the rows in this1306* <code>ResultSet</code> object will be processed.1307* The initial value is determined by the1308* <code>Statement</code> object1309* that produced this <code>ResultSet</code> object.1310* The fetch direction may be changed at any time.1311*1312* @param direction an <code>int</code> specifying the suggested1313* fetch direction; one of <code>ResultSet.FETCH_FORWARD</code>,1314* <code>ResultSet.FETCH_REVERSE</code>, or1315* <code>ResultSet.FETCH_UNKNOWN</code>1316* @exception SQLException if a database access error occurs; this1317* method is called on a closed result set or1318* the result set type is <code>TYPE_FORWARD_ONLY</code> and the fetch1319* direction is not <code>FETCH_FORWARD</code>1320* @since 1.21321* @see Statement#setFetchDirection1322* @see #getFetchDirection1323*/1324void setFetchDirection(int direction) throws SQLException;13251326/**1327* Retrieves the fetch direction for this1328* <code>ResultSet</code> object.1329*1330* @return the current fetch direction for this <code>ResultSet</code> object1331* @exception SQLException if a database access error occurs1332* or this method is called on a closed result set1333* @since 1.21334* @see #setFetchDirection1335*/1336int getFetchDirection() throws SQLException;13371338/**1339* Gives the JDBC driver a hint as to the number of rows that should1340* be fetched from the database when more rows are needed for this1341* <code>ResultSet</code> object.1342* If the fetch size specified is zero, the JDBC driver1343* ignores the value and is free to make its own best guess as to what1344* the fetch size should be. The default value is set by the1345* <code>Statement</code> object1346* that created the result set. The fetch size may be changed at any time.1347*1348* @param rows the number of rows to fetch1349* @exception SQLException if a database access error occurs; this method1350* is called on a closed result set or the1351* condition {@code rows >= 0} is not satisfied1352* @since 1.21353* @see #getFetchSize1354*/1355void setFetchSize(int rows) throws SQLException;13561357/**1358* Retrieves the fetch size for this1359* <code>ResultSet</code> object.1360*1361* @return the current fetch size for this <code>ResultSet</code> object1362* @exception SQLException if a database access error occurs1363* or this method is called on a closed result set1364* @since 1.21365* @see #setFetchSize1366*/1367int getFetchSize() throws SQLException;13681369/**1370* The constant indicating the type for a <code>ResultSet</code> object1371* whose cursor may move only forward.1372* @since 1.21373*/1374int TYPE_FORWARD_ONLY = 1003;13751376/**1377* The constant indicating the type for a <code>ResultSet</code> object1378* that is scrollable but generally not sensitive to changes to the data1379* that underlies the <code>ResultSet</code>.1380* @since 1.21381*/1382int TYPE_SCROLL_INSENSITIVE = 1004;13831384/**1385* The constant indicating the type for a <code>ResultSet</code> object1386* that is scrollable and generally sensitive to changes to the data1387* that underlies the <code>ResultSet</code>.1388* @since 1.21389*/1390int TYPE_SCROLL_SENSITIVE = 1005;13911392/**1393* Retrieves the type of this <code>ResultSet</code> object.1394* The type is determined by the <code>Statement</code> object1395* that created the result set.1396*1397* @return <code>ResultSet.TYPE_FORWARD_ONLY</code>,1398* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>,1399* or <code>ResultSet.TYPE_SCROLL_SENSITIVE</code>1400* @exception SQLException if a database access error occurs1401* or this method is called on a closed result set1402* @since 1.21403*/1404int getType() throws SQLException;14051406/**1407* The constant indicating the concurrency mode for a1408* <code>ResultSet</code> object that may NOT be updated.1409* @since 1.21410*/1411int CONCUR_READ_ONLY = 1007;14121413/**1414* The constant indicating the concurrency mode for a1415* <code>ResultSet</code> object that may be updated.1416* @since 1.21417*/1418int CONCUR_UPDATABLE = 1008;14191420/**1421* Retrieves the concurrency mode of this <code>ResultSet</code> object.1422* The concurrency used is determined by the1423* <code>Statement</code> object that created the result set.1424*1425* @return the concurrency type, either1426* <code>ResultSet.CONCUR_READ_ONLY</code>1427* or <code>ResultSet.CONCUR_UPDATABLE</code>1428* @exception SQLException if a database access error occurs1429* or this method is called on a closed result set1430* @since 1.21431*/1432int getConcurrency() throws SQLException;14331434//---------------------------------------------------------------------1435// Updates1436//---------------------------------------------------------------------14371438/**1439* Retrieves whether the current row has been updated. The value returned1440* depends on whether or not the result set can detect updates.1441* <p>1442* <strong>Note:</strong> Support for the <code>rowUpdated</code> method is optional with a result set1443* concurrency of <code>CONCUR_READ_ONLY</code>1444* @return <code>true</code> if the current row is detected to1445* have been visibly updated by the owner or another; <code>false</code> otherwise1446* @exception SQLException if a database access error occurs1447* or this method is called on a closed result set1448* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1449* this method1450* @see DatabaseMetaData#updatesAreDetected1451* @since 1.21452*/1453boolean rowUpdated() throws SQLException;14541455/**1456* Retrieves whether the current row has had an insertion.1457* The value returned depends on whether or not this1458* <code>ResultSet</code> object can detect visible inserts.1459* <p>1460* <strong>Note:</strong> Support for the <code>rowInserted</code> method is optional with a result set1461* concurrency of <code>CONCUR_READ_ONLY</code>1462* @return <code>true</code> if the current row is detected to1463* have been inserted; <code>false</code> otherwise1464* @exception SQLException if a database access error occurs1465* or this method is called on a closed result set1466* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1467* this method1468*1469* @see DatabaseMetaData#insertsAreDetected1470* @since 1.21471*/1472boolean rowInserted() throws SQLException;14731474/**1475* Retrieves whether a row has been deleted. A deleted row may leave1476* a visible "hole" in a result set. This method can be used to1477* detect holes in a result set. The value returned depends on whether1478* or not this <code>ResultSet</code> object can detect deletions.1479* <p>1480* <strong>Note:</strong> Support for the <code>rowDeleted</code> method is optional with a result set1481* concurrency of <code>CONCUR_READ_ONLY</code>1482* @return <code>true</code> if the current row is detected to1483* have been deleted by the owner or another; <code>false</code> otherwise1484* @exception SQLException if a database access error occurs1485* or this method is called on a closed result set1486* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1487* this method1488*1489* @see DatabaseMetaData#deletesAreDetected1490* @since 1.21491*/1492boolean rowDeleted() throws SQLException;14931494/**1495* Updates the designated column with a <code>null</code> value.1496*1497* The updater methods are used to update column values in the1498* current row or the insert row. The updater methods do not1499* update the underlying database; instead the <code>updateRow</code>1500* or <code>insertRow</code> methods are called to update the database.1501*1502* @param columnIndex the first column is 1, the second is 2, ...1503* @exception SQLException if the columnIndex is not valid;1504* if a database access error occurs;1505* the result set concurrency is <code>CONCUR_READ_ONLY</code>1506* or this method is called on a closed result set1507* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1508* this method1509* @since 1.21510*/1511void updateNull(int columnIndex) throws SQLException;15121513/**1514* Updates the designated column with a <code>boolean</code> value.1515* The updater methods are used to update column values in the1516* current row or the insert row. The updater methods do not1517* update the underlying database; instead the <code>updateRow</code> or1518* <code>insertRow</code> methods are called to update the database.1519*1520* @param columnIndex the first column is 1, the second is 2, ...1521* @param x the new column value1522* @exception SQLException if the columnIndex is not valid;1523* if a database access error occurs;1524* the result set concurrency is <code>CONCUR_READ_ONLY</code>1525* or this method is called on a closed result set1526* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1527* this method1528* @since 1.21529*/1530void updateBoolean(int columnIndex, boolean x) throws SQLException;15311532/**1533* Updates the designated column with a <code>byte</code> value.1534* The updater methods are used to update column values in the1535* current row or the insert row. The updater methods do not1536* update the underlying database; instead the <code>updateRow</code> or1537* <code>insertRow</code> methods are called to update the database.1538*1539*1540* @param columnIndex the first column is 1, the second is 2, ...1541* @param x the new column value1542* @exception SQLException if the columnIndex is not valid;1543* if a database access error occurs;1544* the result set concurrency is <code>CONCUR_READ_ONLY</code>1545* or this method is called on a closed result set1546* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1547* this method1548* @since 1.21549*/1550void updateByte(int columnIndex, byte x) throws SQLException;15511552/**1553* Updates the designated column with a <code>short</code> value.1554* The updater methods are used to update column values in the1555* current row or the insert row. The updater methods do not1556* update the underlying database; instead the <code>updateRow</code> or1557* <code>insertRow</code> methods are called to update the database.1558*1559* @param columnIndex the first column is 1, the second is 2, ...1560* @param x the new column value1561* @exception SQLException if the columnIndex is not valid;1562* if a database access error occurs;1563* the result set concurrency is <code>CONCUR_READ_ONLY</code>1564* or this method is called on a closed result set1565* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1566* this method1567* @since 1.21568*/1569void updateShort(int columnIndex, short x) throws SQLException;15701571/**1572* Updates the designated column with an <code>int</code> value.1573* The updater methods are used to update column values in the1574* current row or the insert row. The updater methods do not1575* update the underlying database; instead the <code>updateRow</code> or1576* <code>insertRow</code> methods are called to update the database.1577*1578* @param columnIndex the first column is 1, the second is 2, ...1579* @param x the new column value1580* @exception SQLException if the columnIndex is not valid;1581* if a database access error occurs;1582* the result set concurrency is <code>CONCUR_READ_ONLY</code>1583* or this method is called on a closed result set1584* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1585* this method1586* @since 1.21587*/1588void updateInt(int columnIndex, int x) throws SQLException;15891590/**1591* Updates the designated column with a <code>long</code> value.1592* The updater methods are used to update column values in the1593* current row or the insert row. The updater methods do not1594* update the underlying database; instead the <code>updateRow</code> or1595* <code>insertRow</code> methods are called to update the database.1596*1597* @param columnIndex the first column is 1, the second is 2, ...1598* @param x the new column value1599* @exception SQLException if the columnIndex is not valid;1600* if a database access error occurs;1601* the result set concurrency is <code>CONCUR_READ_ONLY</code>1602* or this method is called on a closed result set1603* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1604* this method1605* @since 1.21606*/1607void updateLong(int columnIndex, long x) throws SQLException;16081609/**1610* Updates the designated column with a <code>float</code> value.1611* The updater methods are used to update column values in the1612* current row or the insert row. The updater methods do not1613* update the underlying database; instead the <code>updateRow</code> or1614* <code>insertRow</code> methods are called to update the database.1615*1616* @param columnIndex the first column is 1, the second is 2, ...1617* @param x the new column value1618* @exception SQLException if the columnIndex is not valid;1619* if a database access error occurs;1620* the result set concurrency is <code>CONCUR_READ_ONLY</code>1621* or this method is called on a closed result set1622* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1623* this method1624* @since 1.21625*/1626void updateFloat(int columnIndex, float x) throws SQLException;16271628/**1629* Updates the designated column with a <code>double</code> value.1630* The updater methods are used to update column values in the1631* current row or the insert row. The updater methods do not1632* update the underlying database; instead the <code>updateRow</code> or1633* <code>insertRow</code> methods are called to update the database.1634*1635* @param columnIndex the first column is 1, the second is 2, ...1636* @param x the new column value1637* @exception SQLException if the columnIndex is not valid;1638* if a database access error occurs;1639* the result set concurrency is <code>CONCUR_READ_ONLY</code>1640* or this method is called on a closed result set1641* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1642* this method1643* @since 1.21644*/1645void updateDouble(int columnIndex, double x) throws SQLException;16461647/**1648* Updates the designated column with a <code>java.math.BigDecimal</code>1649* value.1650* The updater methods are used to update column values in the1651* current row or the insert row. The updater methods do not1652* update the underlying database; instead the <code>updateRow</code> or1653* <code>insertRow</code> methods are called to update the database.1654*1655* @param columnIndex the first column is 1, the second is 2, ...1656* @param x the new column value1657* @exception SQLException if the columnIndex is not valid;1658* if a database access error occurs;1659* the result set concurrency is <code>CONCUR_READ_ONLY</code>1660* or this method is called on a closed result set1661* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1662* this method1663* @since 1.21664*/1665void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException;16661667/**1668* Updates the designated column with a <code>String</code> value.1669* The updater methods are used to update column values in the1670* current row or the insert row. The updater methods do not1671* update the underlying database; instead the <code>updateRow</code> or1672* <code>insertRow</code> methods are called to update the database.1673*1674* @param columnIndex the first column is 1, the second is 2, ...1675* @param x the new column value1676* @exception SQLException if the columnIndex is not valid;1677* if a database access error occurs;1678* the result set concurrency is <code>CONCUR_READ_ONLY</code>1679* or this method is called on a closed result set1680* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1681* this method1682* @since 1.21683*/1684void updateString(int columnIndex, String x) throws SQLException;16851686/**1687* Updates the designated column with a <code>byte</code> array value.1688* The updater methods are used to update column values in the1689* current row or the insert row. The updater methods do not1690* update the underlying database; instead the <code>updateRow</code> or1691* <code>insertRow</code> methods are called to update the database.1692*1693* @param columnIndex the first column is 1, the second is 2, ...1694* @param x the new column value1695* @exception SQLException if the columnIndex is not valid;1696* if a database access error occurs;1697* the result set concurrency is <code>CONCUR_READ_ONLY</code>1698* or this method is called on a closed result set1699* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1700* this method1701* @since 1.21702*/1703void updateBytes(int columnIndex, byte x[]) throws SQLException;17041705/**1706* Updates the designated column with a <code>java.sql.Date</code> value.1707* The updater methods are used to update column values in the1708* current row or the insert row. The updater methods do not1709* update the underlying database; instead the <code>updateRow</code> or1710* <code>insertRow</code> methods are called to update the database.1711*1712* @param columnIndex the first column is 1, the second is 2, ...1713* @param x the new column value1714* @exception SQLException if the columnIndex is not valid;1715* if a database access error occurs;1716* the result set concurrency is <code>CONCUR_READ_ONLY</code>1717* or this method is called on a closed result set1718* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1719* this method1720* @since 1.21721*/1722void updateDate(int columnIndex, java.sql.Date x) throws SQLException;17231724/**1725* Updates the designated column with a <code>java.sql.Time</code> value.1726* The updater methods are used to update column values in the1727* current row or the insert row. The updater methods do not1728* update the underlying database; instead the <code>updateRow</code> or1729* <code>insertRow</code> methods are called to update the database.1730*1731* @param columnIndex the first column is 1, the second is 2, ...1732* @param x the new column value1733* @exception SQLException if the columnIndex is not valid;1734* if a database access error occurs;1735* the result set concurrency is <code>CONCUR_READ_ONLY</code>1736* or this method is called on a closed result set1737* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1738* this method1739* @since 1.21740*/1741void updateTime(int columnIndex, java.sql.Time x) throws SQLException;17421743/**1744* Updates the designated column with a <code>java.sql.Timestamp</code>1745* value.1746* The updater methods are used to update column values in the1747* current row or the insert row. The updater methods do not1748* update the underlying database; instead the <code>updateRow</code> or1749* <code>insertRow</code> methods are called to update the database.1750*1751* @param columnIndex the first column is 1, the second is 2, ...1752* @param x the new column value1753* @exception SQLException if the columnIndex is not valid;1754* if a database access error occurs;1755* the result set concurrency is <code>CONCUR_READ_ONLY</code>1756* or this method is called on a closed result set1757* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1758* this method1759* @since 1.21760*/1761void updateTimestamp(int columnIndex, java.sql.Timestamp x)1762throws SQLException;17631764/**1765* Updates the designated column with an ascii stream value, which will have1766* the specified number of bytes.1767* The updater methods are used to update column values in the1768* current row or the insert row. The updater methods do not1769* update the underlying database; instead the <code>updateRow</code> or1770* <code>insertRow</code> methods are called to update the database.1771*1772* @param columnIndex the first column is 1, the second is 2, ...1773* @param x the new column value1774* @param length the length of the stream1775* @exception SQLException if the columnIndex is not valid;1776* if a database access error occurs;1777* the result set concurrency is <code>CONCUR_READ_ONLY</code>1778* or this method is called on a closed result set1779* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1780* this method1781* @since 1.21782*/1783void updateAsciiStream(int columnIndex,1784java.io.InputStream x,1785int length) throws SQLException;17861787/**1788* Updates the designated column with a binary stream value, which will have1789* the specified number of bytes.1790* The updater methods are used to update column values in the1791* current row or the insert row. The updater methods do not1792* update the underlying database; instead the <code>updateRow</code> or1793* <code>insertRow</code> methods are called to update the database.1794*1795* @param columnIndex the first column is 1, the second is 2, ...1796* @param x the new column value1797* @param length the length of the stream1798* @exception SQLException if the columnIndex is not valid;1799* if a database access error occurs;1800* the result set concurrency is <code>CONCUR_READ_ONLY</code>1801* or this method is called on a closed result set1802* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1803* this method1804* @since 1.21805*/1806void updateBinaryStream(int columnIndex,1807java.io.InputStream x,1808int length) throws SQLException;18091810/**1811* Updates the designated column with a character stream value, which will have1812* the specified number of bytes.1813* The updater methods are used to update column values in the1814* current row or the insert row. The updater methods do not1815* update the underlying database; instead the <code>updateRow</code> or1816* <code>insertRow</code> methods are called to update the database.1817*1818* @param columnIndex the first column is 1, the second is 2, ...1819* @param x the new column value1820* @param length the length of the stream1821* @exception SQLException if the columnIndex is not valid;1822* if a database access error occurs;1823* the result set concurrency is <code>CONCUR_READ_ONLY</code>1824* or this method is called on a closed result set1825* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1826* this method1827* @since 1.21828*/1829void updateCharacterStream(int columnIndex,1830java.io.Reader x,1831int length) throws SQLException;18321833/**1834* Updates the designated column with an <code>Object</code> value.1835*1836* The updater methods are used to update column values in the1837* current row or the insert row. The updater methods do not1838* update the underlying database; instead the <code>updateRow</code> or1839* <code>insertRow</code> methods are called to update the database.1840*<p>1841* If the second argument is an <code>InputStream</code> then the stream must contain1842* the number of bytes specified by scaleOrLength. If the second argument is a1843* <code>Reader</code> then the reader must contain the number of characters specified1844* by scaleOrLength. If these conditions are not true the driver will generate a1845* <code>SQLException</code> when the statement is executed.1846*1847* @param columnIndex the first column is 1, the second is 2, ...1848* @param x the new column value1849* @param scaleOrLength for an object of <code>java.math.BigDecimal</code> ,1850* this is the number of digits after the decimal point. For1851* Java Object types <code>InputStream</code> and <code>Reader</code>,1852* this is the length1853* of the data in the stream or reader. For all other types,1854* this value will be ignored.1855* @exception SQLException if the columnIndex is not valid;1856* if a database access error occurs;1857* the result set concurrency is <code>CONCUR_READ_ONLY</code>1858* or this method is called on a closed result set1859* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1860* this method1861* @since 1.21862*/1863void updateObject(int columnIndex, Object x, int scaleOrLength)1864throws SQLException;18651866/**1867* Updates the designated column with an <code>Object</code> value.1868*1869* The updater methods are used to update column values in the1870* current row or the insert row. The updater methods do not1871* update the underlying database; instead the <code>updateRow</code> or1872* <code>insertRow</code> methods are called to update the database.1873*1874* @param columnIndex the first column is 1, the second is 2, ...1875* @param x the new column value1876* @exception SQLException if the columnIndex is not valid;1877* if a database access error occurs;1878* the result set concurrency is <code>CONCUR_READ_ONLY</code>1879* or this method is called on a closed result set1880* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1881* this method1882* @since 1.21883*/1884void updateObject(int columnIndex, Object x) throws SQLException;18851886/**1887* Updates the designated column with a <code>null</code> value.1888* The updater methods are used to update column values in the1889* current row or the insert row. The updater methods do not1890* update the underlying database; instead the <code>updateRow</code> or1891* <code>insertRow</code> methods are called to update the database.1892*1893* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1894* @exception SQLException if the columnLabel is not valid;1895* if a database access error occurs;1896* the result set concurrency is <code>CONCUR_READ_ONLY</code>1897* or this method is called on a closed result set1898* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1899* this method1900* @since 1.21901*/1902void updateNull(String columnLabel) throws SQLException;19031904/**1905* Updates the designated column with a <code>boolean</code> value.1906* The updater methods are used to update column values in the1907* current row or the insert row. The updater methods do not1908* update the underlying database; instead the <code>updateRow</code> or1909* <code>insertRow</code> methods are called to update the database.1910*1911* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1912* @param x the new column value1913* @exception SQLException if the columnLabel is not valid;1914* if a database access error occurs;1915* the result set concurrency is <code>CONCUR_READ_ONLY</code>1916* or this method is called on a closed result set1917* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1918* this method1919* @since 1.21920*/1921void updateBoolean(String columnLabel, boolean x) throws SQLException;19221923/**1924* Updates the designated column with a <code>byte</code> value.1925* The updater methods are used to update column values in the1926* current row or the insert row. The updater methods do not1927* update the underlying database; instead the <code>updateRow</code> or1928* <code>insertRow</code> methods are called to update the database.1929*1930* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1931* @param x the new column value1932* @exception SQLException if the columnLabel is not valid;1933* if a database access error occurs;1934* the result set concurrency is <code>CONCUR_READ_ONLY</code>1935* or this method is called on a closed result set1936* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1937* this method1938* @since 1.21939*/1940void updateByte(String columnLabel, byte x) throws SQLException;19411942/**1943* Updates the designated column with a <code>short</code> value.1944* The updater methods are used to update column values in the1945* current row or the insert row. The updater methods do not1946* update the underlying database; instead the <code>updateRow</code> or1947* <code>insertRow</code> methods are called to update the database.1948*1949* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1950* @param x the new column value1951* @exception SQLException if the columnLabel is not valid;1952* if a database access error occurs;1953* the result set concurrency is <code>CONCUR_READ_ONLY</code>1954* or this method is called on a closed result set1955* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1956* this method1957* @since 1.21958*/1959void updateShort(String columnLabel, short x) throws SQLException;19601961/**1962* Updates the designated column with an <code>int</code> value.1963* The updater methods are used to update column values in the1964* current row or the insert row. The updater methods do not1965* update the underlying database; instead the <code>updateRow</code> or1966* <code>insertRow</code> methods are called to update the database.1967*1968* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1969* @param x the new column value1970* @exception SQLException if the columnLabel is not valid;1971* if a database access error occurs;1972* the result set concurrency is <code>CONCUR_READ_ONLY</code>1973* or this method is called on a closed result set1974* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1975* this method1976* @since 1.21977*/1978void updateInt(String columnLabel, int x) throws SQLException;19791980/**1981* Updates the designated column with a <code>long</code> value.1982* The updater methods are used to update column values in the1983* current row or the insert row. The updater methods do not1984* update the underlying database; instead the <code>updateRow</code> or1985* <code>insertRow</code> methods are called to update the database.1986*1987* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column1988* @param x the new column value1989* @exception SQLException if the columnLabel is not valid;1990* if a database access error occurs;1991* the result set concurrency is <code>CONCUR_READ_ONLY</code>1992* or this method is called on a closed result set1993* @exception SQLFeatureNotSupportedException if the JDBC driver does not support1994* this method1995* @since 1.21996*/1997void updateLong(String columnLabel, long x) throws SQLException;19981999/**2000* Updates the designated column with a <code>float </code> value.2001* The updater methods are used to update column values in the2002* current row or the insert row. The updater methods do not2003* update the underlying database; instead the <code>updateRow</code> or2004* <code>insertRow</code> methods are called to update the database.2005*2006* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2007* @param x the new column value2008* @exception SQLException if the columnLabel is not valid;2009* if a database access error occurs;2010* the result set concurrency is <code>CONCUR_READ_ONLY</code>2011* or this method is called on a closed result set2012* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2013* this method2014* @since 1.22015*/2016void updateFloat(String columnLabel, float x) throws SQLException;20172018/**2019* Updates the designated column with a <code>double</code> value.2020* The updater methods are used to update column values in the2021* current row or the insert row. The updater methods do not2022* update the underlying database; instead the <code>updateRow</code> or2023* <code>insertRow</code> methods are called to update the database.2024*2025* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2026* @param x the new column value2027* @exception SQLException if the columnLabel is not valid;2028* if a database access error occurs;2029* the result set concurrency is <code>CONCUR_READ_ONLY</code>2030* or this method is called on a closed result set2031* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2032* this method2033* @since 1.22034*/2035void updateDouble(String columnLabel, double x) throws SQLException;20362037/**2038* Updates the designated column with a <code>java.sql.BigDecimal</code>2039* value.2040* The updater methods are used to update column values in the2041* current row or the insert row. The updater methods do not2042* update the underlying database; instead the <code>updateRow</code> or2043* <code>insertRow</code> methods are called to update the database.2044*2045* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2046* @param x the new column value2047* @exception SQLException if the columnLabel is not valid;2048* if a database access error occurs;2049* the result set concurrency is <code>CONCUR_READ_ONLY</code>2050* or this method is called on a closed result set2051* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2052* this method2053* @since 1.22054*/2055void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException;20562057/**2058* Updates the designated column with a <code>String</code> value.2059* The updater methods are used to update column values in the2060* current row or the insert row. The updater methods do not2061* update the underlying database; instead the <code>updateRow</code> or2062* <code>insertRow</code> methods are called to update the database.2063*2064* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2065* @param x the new column value2066* @exception SQLException if the columnLabel is not valid;2067* if a database access error occurs;2068* the result set concurrency is <code>CONCUR_READ_ONLY</code>2069* or this method is called on a closed result set2070* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2071* this method2072* @since 1.22073*/2074void updateString(String columnLabel, String x) throws SQLException;20752076/**2077* Updates the designated column with a byte array value.2078*2079* The updater methods are used to update column values in the2080* current row or the insert row. The updater methods do not2081* update the underlying database; instead the <code>updateRow</code>2082* or <code>insertRow</code> methods are called to update the database.2083*2084* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2085* @param x the new column value2086* @exception SQLException if the columnLabel is not valid;2087* if a database access error occurs;2088* the result set concurrency is <code>CONCUR_READ_ONLY</code>2089* or this method is called on a closed result set2090* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2091* this method2092* @since 1.22093*/2094void updateBytes(String columnLabel, byte x[]) throws SQLException;20952096/**2097* Updates the designated column with a <code>java.sql.Date</code> value.2098* The updater methods are used to update column values in the2099* current row or the insert row. The updater methods do not2100* update the underlying database; instead the <code>updateRow</code> or2101* <code>insertRow</code> methods are called to update the database.2102*2103* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2104* @param x the new column value2105* @exception SQLException if the columnLabel is not valid;2106* if a database access error occurs;2107* the result set concurrency is <code>CONCUR_READ_ONLY</code>2108* or this method is called on a closed result set2109* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2110* this method2111* @since 1.22112*/2113void updateDate(String columnLabel, java.sql.Date x) throws SQLException;21142115/**2116* Updates the designated column with a <code>java.sql.Time</code> value.2117* The updater methods are used to update column values in the2118* current row or the insert row. The updater methods do not2119* update the underlying database; instead the <code>updateRow</code> or2120* <code>insertRow</code> methods are called to update the database.2121*2122* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2123* @param x the new column value2124* @exception SQLException if the columnLabel is not valid;2125* if a database access error occurs;2126* the result set concurrency is <code>CONCUR_READ_ONLY</code>2127* or this method is called on a closed result set2128* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2129* this method2130* @since 1.22131*/2132void updateTime(String columnLabel, java.sql.Time x) throws SQLException;21332134/**2135* Updates the designated column with a <code>java.sql.Timestamp</code>2136* value.2137* The updater methods are used to update column values in the2138* current row or the insert row. The updater methods do not2139* update the underlying database; instead the <code>updateRow</code> or2140* <code>insertRow</code> methods are called to update the database.2141*2142* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2143* @param x the new column value2144* @exception SQLException if the columnLabel is not valid;2145* if a database access error occurs;2146* the result set concurrency is <code>CONCUR_READ_ONLY</code>2147* or this method is called on a closed result set2148* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2149* this method2150* @since 1.22151*/2152void updateTimestamp(String columnLabel, java.sql.Timestamp x)2153throws SQLException;21542155/**2156* Updates the designated column with an ascii stream value, which will have2157* the specified number of bytes.2158* The updater methods are used to update column values in the2159* current row or the insert row. The updater methods do not2160* update the underlying database; instead the <code>updateRow</code> or2161* <code>insertRow</code> methods are called to update the database.2162*2163* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2164* @param x the new column value2165* @param length the length of the stream2166* @exception SQLException if the columnLabel is not valid;2167* if a database access error occurs;2168* the result set concurrency is <code>CONCUR_READ_ONLY</code>2169* or this method is called on a closed result set2170* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2171* this method2172* @since 1.22173*/2174void updateAsciiStream(String columnLabel,2175java.io.InputStream x,2176int length) throws SQLException;21772178/**2179* Updates the designated column with a binary stream value, which will have2180* the specified number of bytes.2181* The updater methods are used to update column values in the2182* current row or the insert row. The updater methods do not2183* update the underlying database; instead the <code>updateRow</code> or2184* <code>insertRow</code> methods are called to update the database.2185*2186* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2187* @param x the new column value2188* @param length the length of the stream2189* @exception SQLException if the columnLabel is not valid;2190* if a database access error occurs;2191* the result set concurrency is <code>CONCUR_READ_ONLY</code>2192* or this method is called on a closed result set2193* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2194* this method2195* @since 1.22196*/2197void updateBinaryStream(String columnLabel,2198java.io.InputStream x,2199int length) throws SQLException;22002201/**2202* Updates the designated column with a character stream value, which will have2203* the specified number of bytes.2204* The updater methods are used to update column values in the2205* current row or the insert row. The updater methods do not2206* update the underlying database; instead the <code>updateRow</code> or2207* <code>insertRow</code> methods are called to update the database.2208*2209* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2210* @param reader the <code>java.io.Reader</code> object containing2211* the new column value2212* @param length the length of the stream2213* @exception SQLException if the columnLabel is not valid;2214* if a database access error occurs;2215* the result set concurrency is <code>CONCUR_READ_ONLY</code>2216* or this method is called on a closed result set2217* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2218* this method2219* @since 1.22220*/2221void updateCharacterStream(String columnLabel,2222java.io.Reader reader,2223int length) throws SQLException;22242225/**2226* Updates the designated column with an <code>Object</code> value.2227*2228* The updater methods are used to update column values in the2229* current row or the insert row. The updater methods do not2230* update the underlying database; instead the <code>updateRow</code> or2231* <code>insertRow</code> methods are called to update the database.2232*<p>2233* If the second argument is an <code>InputStream</code> then the stream must contain2234* the number of bytes specified by scaleOrLength. If the second argument is a2235* <code>Reader</code> then the reader must contain the number of characters specified2236* by scaleOrLength. If these conditions are not true the driver will generate a2237* <code>SQLException</code> when the statement is executed.2238*2239* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2240* @param x the new column value2241* @param scaleOrLength for an object of <code>java.math.BigDecimal</code> ,2242* this is the number of digits after the decimal point. For2243* Java Object types <code>InputStream</code> and <code>Reader</code>,2244* this is the length2245* of the data in the stream or reader. For all other types,2246* this value will be ignored.2247* @exception SQLException if the columnLabel is not valid;2248* if a database access error occurs;2249* the result set concurrency is <code>CONCUR_READ_ONLY</code>2250* or this method is called on a closed result set2251* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2252* this method2253* @since 1.22254*/2255void updateObject(String columnLabel, Object x, int scaleOrLength)2256throws SQLException;22572258/**2259* Updates the designated column with an <code>Object</code> value.2260*2261* The updater methods are used to update column values in the2262* current row or the insert row. The updater methods do not2263* update the underlying database; instead the <code>updateRow</code> or2264* <code>insertRow</code> methods are called to update the database.2265*2266* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2267* @param x the new column value2268* @exception SQLException if the columnLabel is not valid;2269* if a database access error occurs;2270* the result set concurrency is <code>CONCUR_READ_ONLY</code>2271* or this method is called on a closed result set2272* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2273* this method2274* @since 1.22275*/2276void updateObject(String columnLabel, Object x) throws SQLException;22772278/**2279* Inserts the contents of the insert row into this2280* <code>ResultSet</code> object and into the database.2281* The cursor must be on the insert row when this method is called.2282*2283* @exception SQLException if a database access error occurs;2284* the result set concurrency is <code>CONCUR_READ_ONLY</code>,2285* this method is called on a closed result set,2286* if this method is called when the cursor is not on the insert row,2287* or if not all of non-nullable columns in2288* the insert row have been given a non-null value2289* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2290* this method2291* @since 1.22292*/2293void insertRow() throws SQLException;22942295/**2296* Updates the underlying database with the new contents of the2297* current row of this <code>ResultSet</code> object.2298* This method cannot be called when the cursor is on the insert row.2299*2300* @exception SQLException if a database access error occurs;2301* the result set concurrency is <code>CONCUR_READ_ONLY</code>;2302* this method is called on a closed result set or2303* if this method is called when the cursor is on the insert row2304* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2305* this method2306* @since 1.22307*/2308void updateRow() throws SQLException;23092310/**2311* Deletes the current row from this <code>ResultSet</code> object2312* and from the underlying database. This method cannot be called when2313* the cursor is on the insert row.2314*2315* @exception SQLException if a database access error occurs;2316* the result set concurrency is <code>CONCUR_READ_ONLY</code>;2317* this method is called on a closed result set2318* or if this method is called when the cursor is on the insert row2319* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2320* this method2321* @since 1.22322*/2323void deleteRow() throws SQLException;23242325/**2326* Refreshes the current row with its most recent value in2327* the database. This method cannot be called when2328* the cursor is on the insert row.2329*2330* <P>The <code>refreshRow</code> method provides a way for an2331* application to2332* explicitly tell the JDBC driver to refetch a row(s) from the2333* database. An application may want to call <code>refreshRow</code> when2334* caching or prefetching is being done by the JDBC driver to2335* fetch the latest value of a row from the database. The JDBC driver2336* may actually refresh multiple rows at once if the fetch size is2337* greater than one.2338*2339* <P> All values are refetched subject to the transaction isolation2340* level and cursor sensitivity. If <code>refreshRow</code> is called after2341* calling an updater method, but before calling2342* the method <code>updateRow</code>, then the2343* updates made to the row are lost. Calling the method2344* <code>refreshRow</code> frequently will likely slow performance.2345*2346* @exception SQLException if a database access error2347* occurs; this method is called on a closed result set;2348* the result set type is <code>TYPE_FORWARD_ONLY</code> or if this2349* method is called when the cursor is on the insert row2350* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2351* this method or this method is not supported for the specified result2352* set type and result set concurrency.2353* @since 1.22354*/2355void refreshRow() throws SQLException;23562357/**2358* Cancels the updates made to the current row in this2359* <code>ResultSet</code> object.2360* This method may be called after calling an2361* updater method(s) and before calling2362* the method <code>updateRow</code> to roll back2363* the updates made to a row. If no updates have been made or2364* <code>updateRow</code> has already been called, this method has no2365* effect.2366*2367* @exception SQLException if a database access error2368* occurs; this method is called on a closed result set;2369* the result set concurrency is <code>CONCUR_READ_ONLY</code>2370* or if this method is called when the cursor is2371* on the insert row2372* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2373* this method2374* @since 1.22375*/2376void cancelRowUpdates() throws SQLException;23772378/**2379* Moves the cursor to the insert row. The current cursor position is2380* remembered while the cursor is positioned on the insert row.2381*2382* The insert row is a special row associated with an updatable2383* result set. It is essentially a buffer where a new row may2384* be constructed by calling the updater methods prior to2385* inserting the row into the result set.2386*2387* Only the updater, getter,2388* and <code>insertRow</code> methods may be2389* called when the cursor is on the insert row. All of the columns in2390* a result set must be given a value each time this method is2391* called before calling <code>insertRow</code>.2392* An updater method must be called before a2393* getter method can be called on a column value.2394*2395* @exception SQLException if a database access error occurs; this2396* method is called on a closed result set2397* or the result set concurrency is <code>CONCUR_READ_ONLY</code>2398* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2399* this method2400* @since 1.22401*/2402void moveToInsertRow() throws SQLException;24032404/**2405* Moves the cursor to the remembered cursor position, usually the2406* current row. This method has no effect if the cursor is not on2407* the insert row.2408*2409* @exception SQLException if a database access error occurs; this2410* method is called on a closed result set2411* or the result set concurrency is <code>CONCUR_READ_ONLY</code>2412* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2413* this method2414* @since 1.22415*/2416void moveToCurrentRow() throws SQLException;24172418/**2419* Retrieves the <code>Statement</code> object that produced this2420* <code>ResultSet</code> object.2421* If the result set was generated some other way, such as by a2422* <code>DatabaseMetaData</code> method, this method may return2423* <code>null</code>.2424*2425* @return the <code>Statement</code> object that produced2426* this <code>ResultSet</code> object or <code>null</code>2427* if the result set was produced some other way2428* @exception SQLException if a database access error occurs2429* or this method is called on a closed result set2430* @since 1.22431*/2432Statement getStatement() throws SQLException;24332434/**2435* Retrieves the value of the designated column in the current row2436* of this <code>ResultSet</code> object as an <code>Object</code>2437* in the Java programming language.2438* If the value is an SQL <code>NULL</code>,2439* the driver returns a Java <code>null</code>.2440* This method uses the given <code>Map</code> object2441* for the custom mapping of the2442* SQL structured or distinct type that is being retrieved.2443*2444* @param columnIndex the first column is 1, the second is 2, ...2445* @param map a <code>java.util.Map</code> object that contains the mapping2446* from SQL type names to classes in the Java programming language2447* @return an <code>Object</code> in the Java programming language2448* representing the SQL value2449* @exception SQLException if the columnIndex is not valid;2450* if a database access error occurs2451* or this method is called on a closed result set2452* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2453* this method2454* @since 1.22455*/2456Object getObject(int columnIndex, java.util.Map<String,Class<?>> map)2457throws SQLException;24582459/**2460* Retrieves the value of the designated column in the current row2461* of this <code>ResultSet</code> object as a <code>Ref</code> object2462* in the Java programming language.2463*2464* @param columnIndex the first column is 1, the second is 2, ...2465* @return a <code>Ref</code> object representing an SQL <code>REF</code>2466* value2467* @exception SQLException if the columnIndex is not valid;2468* if a database access error occurs2469* or this method is called on a closed result set2470* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2471* this method2472* @since 1.22473*/2474Ref getRef(int columnIndex) throws SQLException;24752476/**2477* Retrieves the value of the designated column in the current row2478* of this <code>ResultSet</code> object as a <code>Blob</code> object2479* in the Java programming language.2480*2481* @param columnIndex the first column is 1, the second is 2, ...2482* @return a <code>Blob</code> object representing the SQL2483* <code>BLOB</code> value in the specified column2484* @exception SQLException if the columnIndex is not valid;2485* if a database access error occurs2486* or this method is called on a closed result set2487* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2488* this method2489* @since 1.22490*/2491Blob getBlob(int columnIndex) throws SQLException;24922493/**2494* Retrieves the value of the designated column in the current row2495* of this <code>ResultSet</code> object as a <code>Clob</code> object2496* in the Java programming language.2497*2498* @param columnIndex the first column is 1, the second is 2, ...2499* @return a <code>Clob</code> object representing the SQL2500* <code>CLOB</code> value in the specified column2501* @exception SQLException if the columnIndex is not valid;2502* if a database access error occurs2503* or this method is called on a closed result set2504* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2505* this method2506* @since 1.22507*/2508Clob getClob(int columnIndex) throws SQLException;25092510/**2511* Retrieves the value of the designated column in the current row2512* of this <code>ResultSet</code> object as an <code>Array</code> object2513* in the Java programming language.2514*2515* @param columnIndex the first column is 1, the second is 2, ...2516* @return an <code>Array</code> object representing the SQL2517* <code>ARRAY</code> value in the specified column2518* @exception SQLException if the columnIndex is not valid;2519* if a database access error occurs2520* or this method is called on a closed result set2521* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2522* this method2523* @since 1.22524*/2525Array getArray(int columnIndex) throws SQLException;25262527/**2528* Retrieves the value of the designated column in the current row2529* of this <code>ResultSet</code> object as an <code>Object</code>2530* in the Java programming language.2531* If the value is an SQL <code>NULL</code>,2532* the driver returns a Java <code>null</code>.2533* This method uses the specified <code>Map</code> object for2534* custom mapping if appropriate.2535*2536* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2537* @param map a <code>java.util.Map</code> object that contains the mapping2538* from SQL type names to classes in the Java programming language2539* @return an <code>Object</code> representing the SQL value in the2540* specified column2541* @exception SQLException if the columnLabel is not valid;2542* if a database access error occurs2543* or this method is called on a closed result set2544* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2545* this method2546* @since 1.22547*/2548Object getObject(String columnLabel, java.util.Map<String,Class<?>> map)2549throws SQLException;25502551/**2552* Retrieves the value of the designated column in the current row2553* of this <code>ResultSet</code> object as a <code>Ref</code> object2554* in the Java programming language.2555*2556* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2557* @return a <code>Ref</code> object representing the SQL <code>REF</code>2558* value in the specified column2559* @exception SQLException if the columnLabel is not valid;2560* if a database access error occurs2561* or this method is called on a closed result set2562* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2563* this method2564* @since 1.22565*/2566Ref getRef(String columnLabel) throws SQLException;25672568/**2569* Retrieves the value of the designated column in the current row2570* of this <code>ResultSet</code> object as a <code>Blob</code> object2571* in the Java programming language.2572*2573* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2574* @return a <code>Blob</code> object representing the SQL <code>BLOB</code>2575* value in the specified column2576* @exception SQLException if the columnLabel is not valid;2577* if a database access error occurs2578* or this method is called on a closed result set2579* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2580* this method2581* @since 1.22582*/2583Blob getBlob(String columnLabel) throws SQLException;25842585/**2586* Retrieves the value of the designated column in the current row2587* of this <code>ResultSet</code> object as a <code>Clob</code> object2588* in the Java programming language.2589*2590* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2591* @return a <code>Clob</code> object representing the SQL <code>CLOB</code>2592* value in the specified column2593* @exception SQLException if the columnLabel is not valid;2594* if a database access error occurs2595* or this method is called on a closed result set2596* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2597* this method2598* @since 1.22599*/2600Clob getClob(String columnLabel) throws SQLException;26012602/**2603* Retrieves the value of the designated column in the current row2604* of this <code>ResultSet</code> object as an <code>Array</code> object2605* in the Java programming language.2606*2607* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2608* @return an <code>Array</code> object representing the SQL <code>ARRAY</code> value in2609* the specified column2610* @exception SQLException if the columnLabel is not valid;2611* if a database access error occurs2612* or this method is called on a closed result set2613* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2614* this method2615* @since 1.22616*/2617Array getArray(String columnLabel) throws SQLException;26182619/**2620* Retrieves the value of the designated column in the current row2621* of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object2622* in the Java programming language.2623* This method uses the given calendar to construct an appropriate millisecond2624* value for the date if the underlying database does not store2625* timezone information.2626*2627* @param columnIndex the first column is 1, the second is 2, ...2628* @param cal the <code>java.util.Calendar</code> object2629* to use in constructing the date2630* @return the column value as a <code>java.sql.Date</code> object;2631* if the value is SQL <code>NULL</code>,2632* the value returned is <code>null</code> in the Java programming language2633* @exception SQLException if the columnIndex is not valid;2634* if a database access error occurs2635* or this method is called on a closed result set2636* @since 1.22637*/2638java.sql.Date getDate(int columnIndex, Calendar cal) throws SQLException;26392640/**2641* Retrieves the value of the designated column in the current row2642* of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object2643* in the Java programming language.2644* This method uses the given calendar to construct an appropriate millisecond2645* value for the date if the underlying database does not store2646* timezone information.2647*2648* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2649* @param cal the <code>java.util.Calendar</code> object2650* to use in constructing the date2651* @return the column value as a <code>java.sql.Date</code> object;2652* if the value is SQL <code>NULL</code>,2653* the value returned is <code>null</code> in the Java programming language2654* @exception SQLException if the columnLabel is not valid;2655* if a database access error occurs2656* or this method is called on a closed result set2657* @since 1.22658*/2659java.sql.Date getDate(String columnLabel, Calendar cal) throws SQLException;26602661/**2662* Retrieves the value of the designated column in the current row2663* of this <code>ResultSet</code> object as a <code>java.sql.Time</code> object2664* in the Java programming language.2665* This method uses the given calendar to construct an appropriate millisecond2666* value for the time if the underlying database does not store2667* timezone information.2668*2669* @param columnIndex the first column is 1, the second is 2, ...2670* @param cal the <code>java.util.Calendar</code> object2671* to use in constructing the time2672* @return the column value as a <code>java.sql.Time</code> object;2673* if the value is SQL <code>NULL</code>,2674* the value returned is <code>null</code> in the Java programming language2675* @exception SQLException if the columnIndex is not valid;2676* if a database access error occurs2677* or this method is called on a closed result set2678* @since 1.22679*/2680java.sql.Time getTime(int columnIndex, Calendar cal) throws SQLException;26812682/**2683* Retrieves the value of the designated column in the current row2684* of this <code>ResultSet</code> object as a <code>java.sql.Time</code> object2685* in the Java programming language.2686* This method uses the given calendar to construct an appropriate millisecond2687* value for the time if the underlying database does not store2688* timezone information.2689*2690* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2691* @param cal the <code>java.util.Calendar</code> object2692* to use in constructing the time2693* @return the column value as a <code>java.sql.Time</code> object;2694* if the value is SQL <code>NULL</code>,2695* the value returned is <code>null</code> in the Java programming language2696* @exception SQLException if the columnLabel is not valid;2697* if a database access error occurs2698* or this method is called on a closed result set2699* @since 1.22700*/2701java.sql.Time getTime(String columnLabel, Calendar cal) throws SQLException;27022703/**2704* Retrieves the value of the designated column in the current row2705* of this <code>ResultSet</code> object as a <code>java.sql.Timestamp</code> object2706* in the Java programming language.2707* This method uses the given calendar to construct an appropriate millisecond2708* value for the timestamp if the underlying database does not store2709* timezone information.2710*2711* @param columnIndex the first column is 1, the second is 2, ...2712* @param cal the <code>java.util.Calendar</code> object2713* to use in constructing the timestamp2714* @return the column value as a <code>java.sql.Timestamp</code> object;2715* if the value is SQL <code>NULL</code>,2716* the value returned is <code>null</code> in the Java programming language2717* @exception SQLException if the columnIndex is not valid;2718* if a database access error occurs2719* or this method is called on a closed result set2720* @since 1.22721*/2722java.sql.Timestamp getTimestamp(int columnIndex, Calendar cal)2723throws SQLException;27242725/**2726* Retrieves the value of the designated column in the current row2727* of this <code>ResultSet</code> object as a <code>java.sql.Timestamp</code> object2728* in the Java programming language.2729* This method uses the given calendar to construct an appropriate millisecond2730* value for the timestamp if the underlying database does not store2731* timezone information.2732*2733* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2734* @param cal the <code>java.util.Calendar</code> object2735* to use in constructing the date2736* @return the column value as a <code>java.sql.Timestamp</code> object;2737* if the value is SQL <code>NULL</code>,2738* the value returned is <code>null</code> in the Java programming language2739* @exception SQLException if the columnLabel is not valid or2740* if a database access error occurs2741* or this method is called on a closed result set2742* @since 1.22743*/2744java.sql.Timestamp getTimestamp(String columnLabel, Calendar cal)2745throws SQLException;27462747//-------------------------- JDBC 3.0 ----------------------------------------27482749/**2750* The constant indicating that open <code>ResultSet</code> objects with this2751* holdability will remain open when the current transaction is committed.2752*2753* @since 1.42754*/2755int HOLD_CURSORS_OVER_COMMIT = 1;27562757/**2758* The constant indicating that open <code>ResultSet</code> objects with this2759* holdability will be closed when the current transaction is committed.2760*2761* @since 1.42762*/2763int CLOSE_CURSORS_AT_COMMIT = 2;27642765/**2766* Retrieves the value of the designated column in the current row2767* of this <code>ResultSet</code> object as a <code>java.net.URL</code>2768* object in the Java programming language.2769*2770* @param columnIndex the index of the column 1 is the first, 2 is the second,...2771* @return the column value as a <code>java.net.URL</code> object;2772* if the value is SQL <code>NULL</code>,2773* the value returned is <code>null</code> in the Java programming language2774* @exception SQLException if the columnIndex is not valid;2775* if a database access error occurs; this method2776* is called on a closed result set or if a URL is malformed2777* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2778* this method2779* @since 1.42780*/2781java.net.URL getURL(int columnIndex) throws SQLException;27822783/**2784* Retrieves the value of the designated column in the current row2785* of this <code>ResultSet</code> object as a <code>java.net.URL</code>2786* object in the Java programming language.2787*2788* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2789* @return the column value as a <code>java.net.URL</code> object;2790* if the value is SQL <code>NULL</code>,2791* the value returned is <code>null</code> in the Java programming language2792* @exception SQLException if the columnLabel is not valid;2793* if a database access error occurs; this method2794* is called on a closed result set or if a URL is malformed2795* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2796* this method2797* @since 1.42798*/2799java.net.URL getURL(String columnLabel) throws SQLException;28002801/**2802* Updates the designated column with a <code>java.sql.Ref</code> value.2803* The updater methods are used to update column values in the2804* current row or the insert row. The updater methods do not2805* update the underlying database; instead the <code>updateRow</code> or2806* <code>insertRow</code> methods are called to update the database.2807*2808* @param columnIndex the first column is 1, the second is 2, ...2809* @param x the new column value2810* @exception SQLException if the columnIndex is not valid;2811* if a database access error occurs;2812* the result set concurrency is <code>CONCUR_READ_ONLY</code>2813* or this method is called on a closed result set2814* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2815* this method2816* @since 1.42817*/2818void updateRef(int columnIndex, java.sql.Ref x) throws SQLException;28192820/**2821* Updates the designated column with a <code>java.sql.Ref</code> value.2822* The updater methods are used to update column values in the2823* current row or the insert row. The updater methods do not2824* update the underlying database; instead the <code>updateRow</code> or2825* <code>insertRow</code> methods are called to update the database.2826*2827* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2828* @param x the new column value2829* @exception SQLException if the columnLabel is not valid;2830* if a database access error occurs;2831* the result set concurrency is <code>CONCUR_READ_ONLY</code>2832* or this method is called on a closed result set2833* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2834* this method2835* @since 1.42836*/2837void updateRef(String columnLabel, java.sql.Ref x) throws SQLException;28382839/**2840* Updates the designated column with a <code>java.sql.Blob</code> value.2841* The updater methods are used to update column values in the2842* current row or the insert row. The updater methods do not2843* update the underlying database; instead the <code>updateRow</code> or2844* <code>insertRow</code> methods are called to update the database.2845*2846* @param columnIndex the first column is 1, the second is 2, ...2847* @param x the new column value2848* @exception SQLException if the columnIndex is not valid;2849* if a database access error occurs;2850* the result set concurrency is <code>CONCUR_READ_ONLY</code>2851* or this method is called on a closed result set2852* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2853* this method2854* @since 1.42855*/2856void updateBlob(int columnIndex, java.sql.Blob x) throws SQLException;28572858/**2859* Updates the designated column with a <code>java.sql.Blob</code> value.2860* The updater methods are used to update column values in the2861* current row or the insert row. The updater methods do not2862* update the underlying database; instead the <code>updateRow</code> or2863* <code>insertRow</code> methods are called to update the database.2864*2865* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2866* @param x the new column value2867* @exception SQLException if the columnLabel is not valid;2868* if a database access error occurs;2869* the result set concurrency is <code>CONCUR_READ_ONLY</code>2870* or this method is called on a closed result set2871* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2872* this method2873* @since 1.42874*/2875void updateBlob(String columnLabel, java.sql.Blob x) throws SQLException;28762877/**2878* Updates the designated column with a <code>java.sql.Clob</code> value.2879* The updater methods are used to update column values in the2880* current row or the insert row. The updater methods do not2881* update the underlying database; instead the <code>updateRow</code> or2882* <code>insertRow</code> methods are called to update the database.2883*2884* @param columnIndex the first column is 1, the second is 2, ...2885* @param x the new column value2886* @exception SQLException if the columnIndex is not valid;2887* if a database access error occurs;2888* the result set concurrency is <code>CONCUR_READ_ONLY</code>2889* or this method is called on a closed result set2890* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2891* this method2892* @since 1.42893*/2894void updateClob(int columnIndex, java.sql.Clob x) throws SQLException;28952896/**2897* Updates the designated column with a <code>java.sql.Clob</code> value.2898* The updater methods are used to update column values in the2899* current row or the insert row. The updater methods do not2900* update the underlying database; instead the <code>updateRow</code> or2901* <code>insertRow</code> methods are called to update the database.2902*2903* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2904* @param x the new column value2905* @exception SQLException if the columnLabel is not valid;2906* if a database access error occurs;2907* the result set concurrency is <code>CONCUR_READ_ONLY</code>2908* or this method is called on a closed result set2909* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2910* this method2911* @since 1.42912*/2913void updateClob(String columnLabel, java.sql.Clob x) throws SQLException;29142915/**2916* Updates the designated column with a <code>java.sql.Array</code> value.2917* The updater methods are used to update column values in the2918* current row or the insert row. The updater methods do not2919* update the underlying database; instead the <code>updateRow</code> or2920* <code>insertRow</code> methods are called to update the database.2921*2922* @param columnIndex the first column is 1, the second is 2, ...2923* @param x the new column value2924* @exception SQLException if the columnIndex is not valid;2925* if a database access error occurs;2926* the result set concurrency is <code>CONCUR_READ_ONLY</code>2927* or this method is called on a closed result set2928* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2929* this method2930* @since 1.42931*/2932void updateArray(int columnIndex, java.sql.Array x) throws SQLException;29332934/**2935* Updates the designated column with a <code>java.sql.Array</code> value.2936* The updater methods are used to update column values in the2937* current row or the insert row. The updater methods do not2938* update the underlying database; instead the <code>updateRow</code> or2939* <code>insertRow</code> methods are called to update the database.2940*2941* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2942* @param x the new column value2943* @exception SQLException if the columnLabel is not valid;2944* if a database access error occurs;2945* the result set concurrency is <code>CONCUR_READ_ONLY</code>2946* or this method is called on a closed result set2947* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2948* this method2949* @since 1.42950*/2951void updateArray(String columnLabel, java.sql.Array x) throws SQLException;29522953//------------------------- JDBC 4.0 -----------------------------------29542955/**2956* Retrieves the value of the designated column in the current row of this2957* <code>ResultSet</code> object as a <code>java.sql.RowId</code> object in the Java2958* programming language.2959*2960* @param columnIndex the first column is 1, the second 2, ...2961* @return the column value; if the value is a SQL <code>NULL</code> the2962* value returned is <code>null</code>2963* @throws SQLException if the columnIndex is not valid;2964* if a database access error occurs2965* or this method is called on a closed result set2966* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2967* this method2968* @since 1.62969*/2970RowId getRowId(int columnIndex) throws SQLException;29712972/**2973* Retrieves the value of the designated column in the current row of this2974* <code>ResultSet</code> object as a <code>java.sql.RowId</code> object in the Java2975* programming language.2976*2977* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column2978* @return the column value ; if the value is a SQL <code>NULL</code> the2979* value returned is <code>null</code>2980* @throws SQLException if the columnLabel is not valid;2981* if a database access error occurs2982* or this method is called on a closed result set2983* @exception SQLFeatureNotSupportedException if the JDBC driver does not support2984* this method2985* @since 1.62986*/2987RowId getRowId(String columnLabel) throws SQLException;29882989/**2990* Updates the designated column with a <code>RowId</code> value. The updater2991* methods are used to update column values in the current row or the insert2992* row. The updater methods do not update the underlying database; instead2993* the <code>updateRow</code> or <code>insertRow</code> methods are called2994* to update the database.2995*2996* @param columnIndex the first column is 1, the second 2, ...2997* @param x the column value2998* @exception SQLException if the columnIndex is not valid;2999* if a database access error occurs;3000* the result set concurrency is <code>CONCUR_READ_ONLY</code>3001* or this method is called on a closed result set3002* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3003* this method3004* @since 1.63005*/3006void updateRowId(int columnIndex, RowId x) throws SQLException;30073008/**3009* Updates the designated column with a <code>RowId</code> value. The updater3010* methods are used to update column values in the current row or the insert3011* row. The updater methods do not update the underlying database; instead3012* the <code>updateRow</code> or <code>insertRow</code> methods are called3013* to update the database.3014*3015* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3016* @param x the column value3017* @exception SQLException if the columnLabel is not valid;3018* if a database access error occurs;3019* the result set concurrency is <code>CONCUR_READ_ONLY</code>3020* or this method is called on a closed result set3021* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3022* this method3023* @since 1.63024*/3025void updateRowId(String columnLabel, RowId x) throws SQLException;30263027/**3028* Retrieves the holdability of this <code>ResultSet</code> object3029* @return either <code>ResultSet.HOLD_CURSORS_OVER_COMMIT</code> or <code>ResultSet.CLOSE_CURSORS_AT_COMMIT</code>3030* @throws SQLException if a database access error occurs3031* or this method is called on a closed result set3032* @since 1.63033*/3034int getHoldability() throws SQLException;30353036/**3037* Retrieves whether this <code>ResultSet</code> object has been closed. A <code>ResultSet</code> is closed if the3038* method close has been called on it, or if it is automatically closed.3039*3040* @return true if this <code>ResultSet</code> object is closed; false if it is still open3041* @throws SQLException if a database access error occurs3042* @since 1.63043*/3044boolean isClosed() throws SQLException;30453046/**3047* Updates the designated column with a <code>String</code> value.3048* It is intended for use when updating <code>NCHAR</code>,<code>NVARCHAR</code>3049* and <code>LONGNVARCHAR</code> columns.3050* The updater methods are used to update column values in the3051* current row or the insert row. The updater methods do not3052* update the underlying database; instead the <code>updateRow</code> or3053* <code>insertRow</code> methods are called to update the database.3054*3055* @param columnIndex the first column is 1, the second 2, ...3056* @param nString the value for the column to be updated3057* @throws SQLException if the columnIndex is not valid;3058* if the driver does not support national3059* character sets; if the driver can detect that a data conversion3060* error could occur; this method is called on a closed result set;3061* the result set concurrency is <code>CONCUR_READ_ONLY</code>3062* or if a database access error occurs3063* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3064* this method3065* @since 1.63066*/3067void updateNString(int columnIndex, String nString) throws SQLException;30683069/**3070* Updates the designated column with a <code>String</code> value.3071* It is intended for use when updating <code>NCHAR</code>,<code>NVARCHAR</code>3072* and <code>LONGNVARCHAR</code> columns.3073* The updater methods are used to update column values in the3074* current row or the insert row. The updater methods do not3075* update the underlying database; instead the <code>updateRow</code> or3076* <code>insertRow</code> methods are called to update the database.3077*3078* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3079* @param nString the value for the column to be updated3080* @throws SQLException if the columnLabel is not valid;3081* if the driver does not support national3082* character sets; if the driver can detect that a data conversion3083* error could occur; this method is called on a closed result set;3084* the result set concurrency is <CODE>CONCUR_READ_ONLY</code>3085* or if a database access error occurs3086* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3087* this method3088* @since 1.63089*/3090void updateNString(String columnLabel, String nString) throws SQLException;30913092/**3093* Updates the designated column with a <code>java.sql.NClob</code> value.3094* The updater methods are used to update column values in the3095* current row or the insert row. The updater methods do not3096* update the underlying database; instead the <code>updateRow</code> or3097* <code>insertRow</code> methods are called to update the database.3098*3099* @param columnIndex the first column is 1, the second 2, ...3100* @param nClob the value for the column to be updated3101* @throws SQLException if the columnIndex is not valid;3102* if the driver does not support national3103* character sets; if the driver can detect that a data conversion3104* error could occur; this method is called on a closed result set;3105* if a database access error occurs or3106* the result set concurrency is <code>CONCUR_READ_ONLY</code>3107* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3108* this method3109* @since 1.63110*/3111void updateNClob(int columnIndex, NClob nClob) throws SQLException;31123113/**3114* Updates the designated column with a <code>java.sql.NClob</code> value.3115* The updater methods are used to update column values in the3116* current row or the insert row. The updater methods do not3117* update the underlying database; instead the <code>updateRow</code> or3118* <code>insertRow</code> methods are called to update the database.3119*3120* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3121* @param nClob the value for the column to be updated3122* @throws SQLException if the columnLabel is not valid;3123* if the driver does not support national3124* character sets; if the driver can detect that a data conversion3125* error could occur; this method is called on a closed result set;3126* if a database access error occurs or3127* the result set concurrency is <code>CONCUR_READ_ONLY</code>3128* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3129* this method3130* @since 1.63131*/3132void updateNClob(String columnLabel, NClob nClob) throws SQLException;31333134/**3135* Retrieves the value of the designated column in the current row3136* of this <code>ResultSet</code> object as a <code>NClob</code> object3137* in the Java programming language.3138*3139* @param columnIndex the first column is 1, the second is 2, ...3140* @return a <code>NClob</code> object representing the SQL3141* <code>NCLOB</code> value in the specified column3142* @exception SQLException if the columnIndex is not valid;3143* if the driver does not support national3144* character sets; if the driver can detect that a data conversion3145* error could occur; this method is called on a closed result set3146* or if a database access error occurs3147* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3148* this method3149* @since 1.63150*/3151NClob getNClob(int columnIndex) throws SQLException;31523153/**3154* Retrieves the value of the designated column in the current row3155* of this <code>ResultSet</code> object as a <code>NClob</code> object3156* in the Java programming language.3157*3158* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3159* @return a <code>NClob</code> object representing the SQL <code>NCLOB</code>3160* value in the specified column3161* @exception SQLException if the columnLabel is not valid;3162* if the driver does not support national3163* character sets; if the driver can detect that a data conversion3164* error could occur; this method is called on a closed result set3165* or if a database access error occurs3166* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3167* this method3168* @since 1.63169*/3170NClob getNClob(String columnLabel) throws SQLException;31713172/**3173* Retrieves the value of the designated column in the current row of3174* this <code>ResultSet</code> as a3175* <code>java.sql.SQLXML</code> object in the Java programming language.3176* @param columnIndex the first column is 1, the second is 2, ...3177* @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value3178* @throws SQLException if the columnIndex is not valid;3179* if a database access error occurs3180* or this method is called on a closed result set3181* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3182* this method3183* @since 1.63184*/3185SQLXML getSQLXML(int columnIndex) throws SQLException;31863187/**3188* Retrieves the value of the designated column in the current row of3189* this <code>ResultSet</code> as a3190* <code>java.sql.SQLXML</code> object in the Java programming language.3191* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3192* @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value3193* @throws SQLException if the columnLabel is not valid;3194* if a database access error occurs3195* or this method is called on a closed result set3196* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3197* this method3198* @since 1.63199*/3200SQLXML getSQLXML(String columnLabel) throws SQLException;3201/**3202* Updates the designated column with a <code>java.sql.SQLXML</code> value.3203* The updater3204* methods are used to update column values in the current row or the insert3205* row. The updater methods do not update the underlying database; instead3206* the <code>updateRow</code> or <code>insertRow</code> methods are called3207* to update the database.3208* <p>3209*3210* @param columnIndex the first column is 1, the second 2, ...3211* @param xmlObject the value for the column to be updated3212* @throws SQLException if the columnIndex is not valid;3213* if a database access error occurs; this method3214* is called on a closed result set;3215* the <code>java.xml.transform.Result</code>,3216* <code>Writer</code> or <code>OutputStream</code> has not been closed3217* for the <code>SQLXML</code> object;3218* if there is an error processing the XML value or3219* the result set concurrency is <code>CONCUR_READ_ONLY</code>. The <code>getCause</code> method3220* of the exception may provide a more detailed exception, for example, if the3221* stream does not contain valid XML.3222* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3223* this method3224* @since 1.63225*/3226void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException;3227/**3228* Updates the designated column with a <code>java.sql.SQLXML</code> value.3229* The updater3230* methods are used to update column values in the current row or the insert3231* row. The updater methods do not update the underlying database; instead3232* the <code>updateRow</code> or <code>insertRow</code> methods are called3233* to update the database.3234* <p>3235*3236* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3237* @param xmlObject the column value3238* @throws SQLException if the columnLabel is not valid;3239* if a database access error occurs; this method3240* is called on a closed result set;3241* the <code>java.xml.transform.Result</code>,3242* <code>Writer</code> or <code>OutputStream</code> has not been closed3243* for the <code>SQLXML</code> object;3244* if there is an error processing the XML value or3245* the result set concurrency is <code>CONCUR_READ_ONLY</code>. The <code>getCause</code> method3246* of the exception may provide a more detailed exception, for example, if the3247* stream does not contain valid XML.3248* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3249* this method3250* @since 1.63251*/3252void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException;32533254/**3255* Retrieves the value of the designated column in the current row3256* of this <code>ResultSet</code> object as3257* a <code>String</code> in the Java programming language.3258* It is intended for use when3259* accessing <code>NCHAR</code>,<code>NVARCHAR</code>3260* and <code>LONGNVARCHAR</code> columns.3261*3262* @param columnIndex the first column is 1, the second is 2, ...3263* @return the column value; if the value is SQL <code>NULL</code>, the3264* value returned is <code>null</code>3265* @exception SQLException if the columnIndex is not valid;3266* if a database access error occurs3267* or this method is called on a closed result set3268* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3269* this method3270* @since 1.63271*/3272String getNString(int columnIndex) throws SQLException;327332743275/**3276* Retrieves the value of the designated column in the current row3277* of this <code>ResultSet</code> object as3278* a <code>String</code> in the Java programming language.3279* It is intended for use when3280* accessing <code>NCHAR</code>,<code>NVARCHAR</code>3281* and <code>LONGNVARCHAR</code> columns.3282*3283* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3284* @return the column value; if the value is SQL <code>NULL</code>, the3285* value returned is <code>null</code>3286* @exception SQLException if the columnLabel is not valid;3287* if a database access error occurs3288* or this method is called on a closed result set3289* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3290* this method3291* @since 1.63292*/3293String getNString(String columnLabel) throws SQLException;329432953296/**3297* Retrieves the value of the designated column in the current row3298* of this <code>ResultSet</code> object as a3299* <code>java.io.Reader</code> object.3300* It is intended for use when3301* accessing <code>NCHAR</code>,<code>NVARCHAR</code>3302* and <code>LONGNVARCHAR</code> columns.3303*3304* @return a <code>java.io.Reader</code> object that contains the column3305* value; if the value is SQL <code>NULL</code>, the value returned is3306* <code>null</code> in the Java programming language.3307* @param columnIndex the first column is 1, the second is 2, ...3308* @exception SQLException if the columnIndex is not valid;3309* if a database access error occurs3310* or this method is called on a closed result set3311* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3312* this method3313* @since 1.63314*/3315java.io.Reader getNCharacterStream(int columnIndex) throws SQLException;33163317/**3318* Retrieves the value of the designated column in the current row3319* of this <code>ResultSet</code> object as a3320* <code>java.io.Reader</code> object.3321* It is intended for use when3322* accessing <code>NCHAR</code>,<code>NVARCHAR</code>3323* and <code>LONGNVARCHAR</code> columns.3324*3325* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3326* @return a <code>java.io.Reader</code> object that contains the column3327* value; if the value is SQL <code>NULL</code>, the value returned is3328* <code>null</code> in the Java programming language3329* @exception SQLException if the columnLabel is not valid;3330* if a database access error occurs3331* or this method is called on a closed result set3332* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3333* this method3334* @since 1.63335*/3336java.io.Reader getNCharacterStream(String columnLabel) throws SQLException;33373338/**3339* Updates the designated column with a character stream value, which will have3340* the specified number of bytes. The3341* driver does the necessary conversion from Java character format to3342* the national character set in the database.3343* It is intended for use when3344* updating <code>NCHAR</code>,<code>NVARCHAR</code>3345* and <code>LONGNVARCHAR</code> columns.3346* <p>3347* The updater methods are used to update column values in the3348* current row or the insert row. The updater methods do not3349* update the underlying database; instead the <code>updateRow</code> or3350* <code>insertRow</code> methods are called to update the database.3351*3352* @param columnIndex the first column is 1, the second is 2, ...3353* @param x the new column value3354* @param length the length of the stream3355* @exception SQLException if the columnIndex is not valid;3356* if a database access error occurs;3357* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set3358* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3359* this method3360* @since 1.63361*/3362void updateNCharacterStream(int columnIndex,3363java.io.Reader x,3364long length) throws SQLException;33653366/**3367* Updates the designated column with a character stream value, which will have3368* the specified number of bytes. The3369* driver does the necessary conversion from Java character format to3370* the national character set in the database.3371* It is intended for use when3372* updating <code>NCHAR</code>,<code>NVARCHAR</code>3373* and <code>LONGNVARCHAR</code> columns.3374* <p>3375* The updater methods are used to update column values in the3376* current row or the insert row. The updater methods do not3377* update the underlying database; instead the <code>updateRow</code> or3378* <code>insertRow</code> methods are called to update the database.3379*3380* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3381* @param reader the <code>java.io.Reader</code> object containing3382* the new column value3383* @param length the length of the stream3384* @exception SQLException if the columnLabel is not valid;3385* if a database access error occurs;3386* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set3387* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3388* this method3389* @since 1.63390*/3391void updateNCharacterStream(String columnLabel,3392java.io.Reader reader,3393long length) throws SQLException;3394/**3395* Updates the designated column with an ascii stream value, which will have3396* the specified number of bytes.3397* <p>3398* The updater methods are used to update column values in the3399* current row or the insert row. The updater methods do not3400* update the underlying database; instead the <code>updateRow</code> or3401* <code>insertRow</code> methods are called to update the database.3402*3403* @param columnIndex the first column is 1, the second is 2, ...3404* @param x the new column value3405* @param length the length of the stream3406* @exception SQLException if the columnIndex is not valid;3407* if a database access error occurs;3408* the result set concurrency is <code>CONCUR_READ_ONLY</code>3409* or this method is called on a closed result set3410* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3411* this method3412* @since 1.63413*/3414void updateAsciiStream(int columnIndex,3415java.io.InputStream x,3416long length) throws SQLException;34173418/**3419* Updates the designated column with a binary stream value, which will have3420* the specified number of bytes.3421* <p>3422* The updater methods are used to update column values in the3423* current row or the insert row. The updater methods do not3424* update the underlying database; instead the <code>updateRow</code> or3425* <code>insertRow</code> methods are called to update the database.3426*3427* @param columnIndex the first column is 1, the second is 2, ...3428* @param x the new column value3429* @param length the length of the stream3430* @exception SQLException if the columnIndex is not valid;3431* if a database access error occurs;3432* the result set concurrency is <code>CONCUR_READ_ONLY</code>3433* or this method is called on a closed result set3434* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3435* this method3436* @since 1.63437*/3438void updateBinaryStream(int columnIndex,3439java.io.InputStream x,3440long length) throws SQLException;34413442/**3443* Updates the designated column with a character stream value, which will have3444* the specified number of bytes.3445* <p>3446* The updater methods are used to update column values in the3447* current row or the insert row. The updater methods do not3448* update the underlying database; instead the <code>updateRow</code> or3449* <code>insertRow</code> methods are called to update the database.3450*3451* @param columnIndex the first column is 1, the second is 2, ...3452* @param x the new column value3453* @param length the length of the stream3454* @exception SQLException if the columnIndex is not valid;3455* if a database access error occurs;3456* the result set concurrency is <code>CONCUR_READ_ONLY</code>3457* or this method is called on a closed result set3458* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3459* this method3460* @since 1.63461*/3462void updateCharacterStream(int columnIndex,3463java.io.Reader x,3464long length) throws SQLException;3465/**3466* Updates the designated column with an ascii stream value, which will have3467* the specified number of bytes.3468* <p>3469* The updater methods are used to update column values in the3470* current row or the insert row. The updater methods do not3471* update the underlying database; instead the <code>updateRow</code> or3472* <code>insertRow</code> methods are called to update the database.3473*3474* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3475* @param x the new column value3476* @param length the length of the stream3477* @exception SQLException if the columnLabel is not valid;3478* if a database access error occurs;3479* the result set concurrency is <code>CONCUR_READ_ONLY</code>3480* or this method is called on a closed result set3481* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3482* this method3483* @since 1.63484*/3485void updateAsciiStream(String columnLabel,3486java.io.InputStream x,3487long length) throws SQLException;34883489/**3490* Updates the designated column with a binary stream value, which will have3491* the specified number of bytes.3492* <p>3493* The updater methods are used to update column values in the3494* current row or the insert row. The updater methods do not3495* update the underlying database; instead the <code>updateRow</code> or3496* <code>insertRow</code> methods are called to update the database.3497*3498* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3499* @param x the new column value3500* @param length the length of the stream3501* @exception SQLException if the columnLabel is not valid;3502* if a database access error occurs;3503* the result set concurrency is <code>CONCUR_READ_ONLY</code>3504* or this method is called on a closed result set3505* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3506* this method3507* @since 1.63508*/3509void updateBinaryStream(String columnLabel,3510java.io.InputStream x,3511long length) throws SQLException;35123513/**3514* Updates the designated column with a character stream value, which will have3515* the specified number of bytes.3516* <p>3517* The updater methods are used to update column values in the3518* current row or the insert row. The updater methods do not3519* update the underlying database; instead the <code>updateRow</code> or3520* <code>insertRow</code> methods are called to update the database.3521*3522* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3523* @param reader the <code>java.io.Reader</code> object containing3524* the new column value3525* @param length the length of the stream3526* @exception SQLException if the columnLabel is not valid;3527* if a database access error occurs;3528* the result set concurrency is <code>CONCUR_READ_ONLY</code>3529* or this method is called on a closed result set3530* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3531* this method3532* @since 1.63533*/3534void updateCharacterStream(String columnLabel,3535java.io.Reader reader,3536long length) throws SQLException;3537/**3538* Updates the designated column using the given input stream, which3539* will have the specified number of bytes.3540*3541* <p>3542* The updater methods are used to update column values in the3543* current row or the insert row. The updater methods do not3544* update the underlying database; instead the <code>updateRow</code> or3545* <code>insertRow</code> methods are called to update the database.3546*3547* @param columnIndex the first column is 1, the second is 2, ...3548* @param inputStream An object that contains the data to set the parameter3549* value to.3550* @param length the number of bytes in the parameter data.3551* @exception SQLException if the columnIndex is not valid;3552* if a database access error occurs;3553* the result set concurrency is <code>CONCUR_READ_ONLY</code>3554* or this method is called on a closed result set3555* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3556* this method3557* @since 1.63558*/3559void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException;35603561/**3562* Updates the designated column using the given input stream, which3563* will have the specified number of bytes.3564*3565* <p>3566* The updater methods are used to update column values in the3567* current row or the insert row. The updater methods do not3568* update the underlying database; instead the <code>updateRow</code> or3569* <code>insertRow</code> methods are called to update the database.3570*3571* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3572* @param inputStream An object that contains the data to set the parameter3573* value to.3574* @param length the number of bytes in the parameter data.3575* @exception SQLException if the columnLabel is not valid;3576* if a database access error occurs;3577* the result set concurrency is <code>CONCUR_READ_ONLY</code>3578* or this method is called on a closed result set3579* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3580* this method3581* @since 1.63582*/3583void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException;35843585/**3586* Updates the designated column using the given <code>Reader</code>3587* object, which is the given number of characters long.3588* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>3589* parameter, it may be more practical to send it via a3590* <code>java.io.Reader</code> object. The JDBC driver will3591* do any necessary conversion from UNICODE to the database char format.3592*3593* <p>3594* The updater methods are used to update column values in the3595* current row or the insert row. The updater methods do not3596* update the underlying database; instead the <code>updateRow</code> or3597* <code>insertRow</code> methods are called to update the database.3598*3599* @param columnIndex the first column is 1, the second is 2, ...3600* @param reader An object that contains the data to set the parameter value to.3601* @param length the number of characters in the parameter data.3602* @exception SQLException if the columnIndex is not valid;3603* if a database access error occurs;3604* the result set concurrency is <code>CONCUR_READ_ONLY</code>3605* or this method is called on a closed result set3606* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3607* this method3608* @since 1.63609*/3610void updateClob(int columnIndex, Reader reader, long length) throws SQLException;36113612/**3613* Updates the designated column using the given <code>Reader</code>3614* object, which is the given number of characters long.3615* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>3616* parameter, it may be more practical to send it via a3617* <code>java.io.Reader</code> object. The JDBC driver will3618* do any necessary conversion from UNICODE to the database char format.3619*3620* <p>3621* The updater methods are used to update column values in the3622* current row or the insert row. The updater methods do not3623* update the underlying database; instead the <code>updateRow</code> or3624* <code>insertRow</code> methods are called to update the database.3625*3626* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3627* @param reader An object that contains the data to set the parameter value to.3628* @param length the number of characters in the parameter data.3629* @exception SQLException if the columnLabel is not valid;3630* if a database access error occurs;3631* the result set concurrency is <code>CONCUR_READ_ONLY</code>3632* or this method is called on a closed result set3633* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3634* this method3635* @since 1.63636*/3637void updateClob(String columnLabel, Reader reader, long length) throws SQLException;3638/**3639* Updates the designated column using the given <code>Reader</code>3640* object, which is the given number of characters long.3641* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>3642* parameter, it may be more practical to send it via a3643* <code>java.io.Reader</code> object. The JDBC driver will3644* do any necessary conversion from UNICODE to the database char format.3645*3646* <p>3647* The updater methods are used to update column values in the3648* current row or the insert row. The updater methods do not3649* update the underlying database; instead the <code>updateRow</code> or3650* <code>insertRow</code> methods are called to update the database.3651*3652* @param columnIndex the first column is 1, the second 2, ...3653* @param reader An object that contains the data to set the parameter value to.3654* @param length the number of characters in the parameter data.3655* @throws SQLException if the columnIndex is not valid;3656* if the driver does not support national3657* character sets; if the driver can detect that a data conversion3658* error could occur; this method is called on a closed result set,3659* if a database access error occurs or3660* the result set concurrency is <code>CONCUR_READ_ONLY</code>3661* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3662* this method3663* @since 1.63664*/3665void updateNClob(int columnIndex, Reader reader, long length) throws SQLException;36663667/**3668* Updates the designated column using the given <code>Reader</code>3669* object, which is the given number of characters long.3670* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>3671* parameter, it may be more practical to send it via a3672* <code>java.io.Reader</code> object. The JDBC driver will3673* do any necessary conversion from UNICODE to the database char format.3674*3675* <p>3676* The updater methods are used to update column values in the3677* current row or the insert row. The updater methods do not3678* update the underlying database; instead the <code>updateRow</code> or3679* <code>insertRow</code> methods are called to update the database.3680*3681* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3682* @param reader An object that contains the data to set the parameter value to.3683* @param length the number of characters in the parameter data.3684* @throws SQLException if the columnLabel is not valid;3685* if the driver does not support national3686* character sets; if the driver can detect that a data conversion3687* error could occur; this method is called on a closed result set;3688* if a database access error occurs or3689* the result set concurrency is <code>CONCUR_READ_ONLY</code>3690* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3691* this method3692* @since 1.63693*/3694void updateNClob(String columnLabel, Reader reader, long length) throws SQLException;36953696//---36973698/**3699* Updates the designated column with a character stream value.3700* The data will be read from the stream3701* as needed until end-of-stream is reached. The3702* driver does the necessary conversion from Java character format to3703* the national character set in the database.3704* It is intended for use when3705* updating <code>NCHAR</code>,<code>NVARCHAR</code>3706* and <code>LONGNVARCHAR</code> columns.3707* <p>3708* The updater methods are used to update column values in the3709* current row or the insert row. The updater methods do not3710* update the underlying database; instead the <code>updateRow</code> or3711* <code>insertRow</code> methods are called to update the database.3712*3713* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3714* it might be more efficient to use a version of3715* <code>updateNCharacterStream</code> which takes a length parameter.3716*3717* @param columnIndex the first column is 1, the second is 2, ...3718* @param x the new column value3719* @exception SQLException if the columnIndex is not valid;3720* if a database access error occurs;3721* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set3722* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3723* this method3724* @since 1.63725*/3726void updateNCharacterStream(int columnIndex,3727java.io.Reader x) throws SQLException;37283729/**3730* Updates the designated column with a character stream value.3731* The data will be read from the stream3732* as needed until end-of-stream is reached. The3733* driver does the necessary conversion from Java character format to3734* the national character set in the database.3735* It is intended for use when3736* updating <code>NCHAR</code>,<code>NVARCHAR</code>3737* and <code>LONGNVARCHAR</code> columns.3738* <p>3739* The updater methods are used to update column values in the3740* current row or the insert row. The updater methods do not3741* update the underlying database; instead the <code>updateRow</code> or3742* <code>insertRow</code> methods are called to update the database.3743*3744* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3745* it might be more efficient to use a version of3746* <code>updateNCharacterStream</code> which takes a length parameter.3747*3748* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3749* @param reader the <code>java.io.Reader</code> object containing3750* the new column value3751* @exception SQLException if the columnLabel is not valid;3752* if a database access error occurs;3753* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set3754* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3755* this method3756* @since 1.63757*/3758void updateNCharacterStream(String columnLabel,3759java.io.Reader reader) throws SQLException;3760/**3761* Updates the designated column with an ascii stream value.3762* The data will be read from the stream3763* as needed until end-of-stream is reached.3764* <p>3765* The updater methods are used to update column values in the3766* current row or the insert row. The updater methods do not3767* update the underlying database; instead the <code>updateRow</code> or3768* <code>insertRow</code> methods are called to update the database.3769*3770* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3771* it might be more efficient to use a version of3772* <code>updateAsciiStream</code> which takes a length parameter.3773*3774* @param columnIndex the first column is 1, the second is 2, ...3775* @param x the new column value3776* @exception SQLException if the columnIndex is not valid;3777* if a database access error occurs;3778* the result set concurrency is <code>CONCUR_READ_ONLY</code>3779* or this method is called on a closed result set3780* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3781* this method3782* @since 1.63783*/3784void updateAsciiStream(int columnIndex,3785java.io.InputStream x) throws SQLException;37863787/**3788* Updates the designated column with a binary stream value.3789* The data will be read from the stream3790* as needed until end-of-stream is reached.3791* <p>3792* The updater methods are used to update column values in the3793* current row or the insert row. The updater methods do not3794* update the underlying database; instead the <code>updateRow</code> or3795* <code>insertRow</code> methods are called to update the database.3796*3797* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3798* it might be more efficient to use a version of3799* <code>updateBinaryStream</code> which takes a length parameter.3800*3801* @param columnIndex the first column is 1, the second is 2, ...3802* @param x the new column value3803* @exception SQLException if the columnIndex is not valid;3804* if a database access error occurs;3805* the result set concurrency is <code>CONCUR_READ_ONLY</code>3806* or this method is called on a closed result set3807* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3808* this method3809* @since 1.63810*/3811void updateBinaryStream(int columnIndex,3812java.io.InputStream x) throws SQLException;38133814/**3815* Updates the designated column with a character stream value.3816* The data will be read from the stream3817* as needed until end-of-stream is reached.3818* <p>3819* The updater methods are used to update column values in the3820* current row or the insert row. The updater methods do not3821* update the underlying database; instead the <code>updateRow</code> or3822* <code>insertRow</code> methods are called to update the database.3823*3824* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3825* it might be more efficient to use a version of3826* <code>updateCharacterStream</code> which takes a length parameter.3827*3828* @param columnIndex the first column is 1, the second is 2, ...3829* @param x the new column value3830* @exception SQLException if the columnIndex is not valid;3831* if a database access error occurs;3832* the result set concurrency is <code>CONCUR_READ_ONLY</code>3833* or this method is called on a closed result set3834* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3835* this method3836* @since 1.63837*/3838void updateCharacterStream(int columnIndex,3839java.io.Reader x) throws SQLException;3840/**3841* Updates the designated column with an ascii stream value.3842* The data will be read from the stream3843* as needed until end-of-stream is reached.3844* <p>3845* The updater methods are used to update column values in the3846* current row or the insert row. The updater methods do not3847* update the underlying database; instead the <code>updateRow</code> or3848* <code>insertRow</code> methods are called to update the database.3849*3850* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3851* it might be more efficient to use a version of3852* <code>updateAsciiStream</code> which takes a length parameter.3853*3854* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3855* @param x the new column value3856* @exception SQLException if the columnLabel is not valid;3857* if a database access error occurs;3858* the result set concurrency is <code>CONCUR_READ_ONLY</code>3859* or this method is called on a closed result set3860* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3861* this method3862* @since 1.63863*/3864void updateAsciiStream(String columnLabel,3865java.io.InputStream x) throws SQLException;38663867/**3868* Updates the designated column with a binary stream value.3869* The data will be read from the stream3870* as needed until end-of-stream is reached.3871* <p>3872* The updater methods are used to update column values in the3873* current row or the insert row. The updater methods do not3874* update the underlying database; instead the <code>updateRow</code> or3875* <code>insertRow</code> methods are called to update the database.3876*3877* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3878* it might be more efficient to use a version of3879* <code>updateBinaryStream</code> which takes a length parameter.3880*3881* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3882* @param x the new column value3883* @exception SQLException if the columnLabel is not valid;3884* if a database access error occurs;3885* the result set concurrency is <code>CONCUR_READ_ONLY</code>3886* or this method is called on a closed result set3887* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3888* this method3889* @since 1.63890*/3891void updateBinaryStream(String columnLabel,3892java.io.InputStream x) throws SQLException;38933894/**3895* Updates the designated column with a character stream value.3896* The data will be read from the stream3897* as needed until end-of-stream is reached.3898* <p>3899* The updater methods are used to update column values in the3900* current row or the insert row. The updater methods do not3901* update the underlying database; instead the <code>updateRow</code> or3902* <code>insertRow</code> methods are called to update the database.3903*3904* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3905* it might be more efficient to use a version of3906* <code>updateCharacterStream</code> which takes a length parameter.3907*3908* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3909* @param reader the <code>java.io.Reader</code> object containing3910* the new column value3911* @exception SQLException if the columnLabel is not valid; if a database access error occurs;3912* the result set concurrency is <code>CONCUR_READ_ONLY</code>3913* or this method is called on a closed result set3914* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3915* this method3916* @since 1.63917*/3918void updateCharacterStream(String columnLabel,3919java.io.Reader reader) throws SQLException;3920/**3921* Updates the designated column using the given input stream. The data will be read from the stream3922* as needed until end-of-stream is reached.3923* <p>3924* The updater methods are used to update column values in the3925* current row or the insert row. The updater methods do not3926* update the underlying database; instead the <code>updateRow</code> or3927* <code>insertRow</code> methods are called to update the database.3928*3929* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3930* it might be more efficient to use a version of3931* <code>updateBlob</code> which takes a length parameter.3932*3933* @param columnIndex the first column is 1, the second is 2, ...3934* @param inputStream An object that contains the data to set the parameter3935* value to.3936* @exception SQLException if the columnIndex is not valid; if a database access error occurs;3937* the result set concurrency is <code>CONCUR_READ_ONLY</code>3938* or this method is called on a closed result set3939* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3940* this method3941* @since 1.63942*/3943void updateBlob(int columnIndex, InputStream inputStream) throws SQLException;39443945/**3946* Updates the designated column using the given input stream. The data will be read from the stream3947* as needed until end-of-stream is reached.3948* <p>3949* The updater methods are used to update column values in the3950* current row or the insert row. The updater methods do not3951* update the underlying database; instead the <code>updateRow</code> or3952* <code>insertRow</code> methods are called to update the database.3953*3954* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3955* it might be more efficient to use a version of3956* <code>updateBlob</code> which takes a length parameter.3957*3958* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column3959* @param inputStream An object that contains the data to set the parameter3960* value to.3961* @exception SQLException if the columnLabel is not valid; if a database access error occurs;3962* the result set concurrency is <code>CONCUR_READ_ONLY</code>3963* or this method is called on a closed result set3964* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3965* this method3966* @since 1.63967*/3968void updateBlob(String columnLabel, InputStream inputStream) throws SQLException;39693970/**3971* Updates the designated column using the given <code>Reader</code>3972* object.3973* The data will be read from the stream3974* as needed until end-of-stream is reached. The JDBC driver will3975* do any necessary conversion from UNICODE to the database char format.3976*3977* <p>3978* The updater methods are used to update column values in the3979* current row or the insert row. The updater methods do not3980* update the underlying database; instead the <code>updateRow</code> or3981* <code>insertRow</code> methods are called to update the database.3982*3983* <P><B>Note:</B> Consult your JDBC driver documentation to determine if3984* it might be more efficient to use a version of3985* <code>updateClob</code> which takes a length parameter.3986*3987* @param columnIndex the first column is 1, the second is 2, ...3988* @param reader An object that contains the data to set the parameter value to.3989* @exception SQLException if the columnIndex is not valid;3990* if a database access error occurs;3991* the result set concurrency is <code>CONCUR_READ_ONLY</code>3992* or this method is called on a closed result set3993* @exception SQLFeatureNotSupportedException if the JDBC driver does not support3994* this method3995* @since 1.63996*/3997void updateClob(int columnIndex, Reader reader) throws SQLException;39983999/**4000* Updates the designated column using the given <code>Reader</code>4001* object.4002* The data will be read from the stream4003* as needed until end-of-stream is reached. The JDBC driver will4004* do any necessary conversion from UNICODE to the database char format.4005*4006* <p>4007* The updater methods are used to update column values in the4008* current row or the insert row. The updater methods do not4009* update the underlying database; instead the <code>updateRow</code> or4010* <code>insertRow</code> methods are called to update the database.4011*4012* <P><B>Note:</B> Consult your JDBC driver documentation to determine if4013* it might be more efficient to use a version of4014* <code>updateClob</code> which takes a length parameter.4015*4016* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column4017* @param reader An object that contains the data to set the parameter value to.4018* @exception SQLException if the columnLabel is not valid; if a database access error occurs;4019* the result set concurrency is <code>CONCUR_READ_ONLY</code>4020* or this method is called on a closed result set4021* @exception SQLFeatureNotSupportedException if the JDBC driver does not support4022* this method4023* @since 1.64024*/4025void updateClob(String columnLabel, Reader reader) throws SQLException;4026/**4027* Updates the designated column using the given <code>Reader</code>4028*4029* The data will be read from the stream4030* as needed until end-of-stream is reached. The JDBC driver will4031* do any necessary conversion from UNICODE to the database char format.4032*4033* <p>4034* The updater methods are used to update column values in the4035* current row or the insert row. The updater methods do not4036* update the underlying database; instead the <code>updateRow</code> or4037* <code>insertRow</code> methods are called to update the database.4038*4039* <P><B>Note:</B> Consult your JDBC driver documentation to determine if4040* it might be more efficient to use a version of4041* <code>updateNClob</code> which takes a length parameter.4042*4043* @param columnIndex the first column is 1, the second 2, ...4044* @param reader An object that contains the data to set the parameter value to.4045* @throws SQLException if the columnIndex is not valid;4046* if the driver does not support national4047* character sets; if the driver can detect that a data conversion4048* error could occur; this method is called on a closed result set,4049* if a database access error occurs or4050* the result set concurrency is <code>CONCUR_READ_ONLY</code>4051* @exception SQLFeatureNotSupportedException if the JDBC driver does not support4052* this method4053* @since 1.64054*/4055void updateNClob(int columnIndex, Reader reader) throws SQLException;40564057/**4058* Updates the designated column using the given <code>Reader</code>4059* object.4060* The data will be read from the stream4061* as needed until end-of-stream is reached. The JDBC driver will4062* do any necessary conversion from UNICODE to the database char format.4063*4064* <p>4065* The updater methods are used to update column values in the4066* current row or the insert row. The updater methods do not4067* update the underlying database; instead the <code>updateRow</code> or4068* <code>insertRow</code> methods are called to update the database.4069*4070* <P><B>Note:</B> Consult your JDBC driver documentation to determine if4071* it might be more efficient to use a version of4072* <code>updateNClob</code> which takes a length parameter.4073*4074* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column4075* @param reader An object that contains the data to set the parameter value to.4076* @throws SQLException if the columnLabel is not valid; if the driver does not support national4077* character sets; if the driver can detect that a data conversion4078* error could occur; this method is called on a closed result set;4079* if a database access error occurs or4080* the result set concurrency is <code>CONCUR_READ_ONLY</code>4081* @exception SQLFeatureNotSupportedException if the JDBC driver does not support4082* this method4083* @since 1.64084*/4085void updateNClob(String columnLabel, Reader reader) throws SQLException;40864087//------------------------- JDBC 4.1 -----------------------------------408840894090/**4091*<p>Retrieves the value of the designated column in the current row4092* of this <code>ResultSet</code> object and will convert from the4093* SQL type of the column to the requested Java data type, if the4094* conversion is supported. If the conversion is not4095* supported or null is specified for the type, a4096* <code>SQLException</code> is thrown.4097*<p>4098* At a minimum, an implementation must support the conversions defined in4099* Appendix B, Table B-3 and conversion of appropriate user defined SQL4100* types to a Java type which implements {@code SQLData}, or {@code Struct}.4101* Additional conversions may be supported and are vendor defined.4102* @param <T> the type of the class modeled by this Class object4103* @param columnIndex the first column is 1, the second is 2, ...4104* @param type Class representing the Java data type to convert the designated4105* column to.4106* @return an instance of {@code type} holding the column value4107* @throws SQLException if conversion is not supported, type is null or4108* another error occurs. The getCause() method of the4109* exception may provide a more detailed exception, for example, if4110* a conversion error occurs4111* @throws SQLFeatureNotSupportedException if the JDBC driver does not support4112* this method4113* @since 1.74114*/4115public <T> T getObject(int columnIndex, Class<T> type) throws SQLException;411641174118/**4119*<p>Retrieves the value of the designated column in the current row4120* of this <code>ResultSet</code> object and will convert from the4121* SQL type of the column to the requested Java data type, if the4122* conversion is supported. If the conversion is not4123* supported or null is specified for the type, a4124* <code>SQLException</code> is thrown.4125*<p>4126* At a minimum, an implementation must support the conversions defined in4127* Appendix B, Table B-3 and conversion of appropriate user defined SQL4128* types to a Java type which implements {@code SQLData}, or {@code Struct}.4129* Additional conversions may be supported and are vendor defined.4130*4131* @param columnLabel the label for the column specified with the SQL AS clause.4132* If the SQL AS clause was not specified, then the label is the name4133* of the column4134* @param type Class representing the Java data type to convert the designated4135* column to.4136* @param <T> the type of the class modeled by this Class object4137* @return an instance of {@code type} holding the column value4138* @throws SQLException if conversion is not supported, type is null or4139* another error occurs. The getCause() method of the4140* exception may provide a more detailed exception, for example, if4141* a conversion error occurs4142* @throws SQLFeatureNotSupportedException if the JDBC driver does not support4143* this method4144* @since 1.74145*/4146public <T> T getObject(String columnLabel, Class<T> type) throws SQLException;41474148//------------------------- JDBC 4.2 -----------------------------------41494150/**4151* Updates the designated column with an {@code Object} value.4152*4153* The updater methods are used to update column values in the4154* current row or the insert row. The updater methods do not4155* update the underlying database; instead the {@code updateRow} or4156* {@code insertRow} methods are called to update the database.4157*<p>4158* If the second argument is an {@code InputStream} then the stream must contain4159* the number of bytes specified by scaleOrLength. If the second argument is a4160* {@code Reader} then the reader must contain the number of characters specified4161* by scaleOrLength. If these conditions are not true the driver will generate a4162* {@code SQLException} when the statement is executed.4163*<p>4164* The default implementation will throw {@code SQLFeatureNotSupportedException}4165*4166* @param columnIndex the first column is 1, the second is 2, ...4167* @param x the new column value4168* @param targetSqlType the SQL type to be sent to the database4169* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,4170* this is the number of digits after the decimal point. For4171* Java Object types {@code InputStream} and {@code Reader},4172* this is the length4173* of the data in the stream or reader. For all other types,4174* this value will be ignored.4175* @exception SQLException if the columnIndex is not valid;4176* if a database access error occurs;4177* the result set concurrency is {@code CONCUR_READ_ONLY}4178* or this method is called on a closed result set4179* @exception SQLFeatureNotSupportedException if the JDBC driver does not4180* support this method; if the JDBC driver does not support the specified targetSqlType4181* @see JDBCType4182* @see SQLType4183* @since 1.84184*/4185default void updateObject(int columnIndex, Object x,4186SQLType targetSqlType, int scaleOrLength) throws SQLException {4187throw new SQLFeatureNotSupportedException("updateObject not implemented");4188}41894190/**4191* Updates the designated column with an {@code Object} value.4192*4193* The updater methods are used to update column values in the4194* current row or the insert row. The updater methods do not4195* update the underlying database; instead the {@code updateRow} or4196* {@code insertRow} methods are called to update the database.4197*<p>4198* If the second argument is an {@code InputStream} then the stream must4199* contain number of bytes specified by scaleOrLength. If the second4200* argument is a {@code Reader} then the reader must contain the number4201* of characters specified by scaleOrLength. If these conditions are not4202* true the driver will generate a4203* {@code SQLException} when the statement is executed.4204*<p>4205* The default implementation will throw {@code SQLFeatureNotSupportedException}4206*4207* @param columnLabel the label for the column specified with the SQL AS4208* clause. If the SQL AS clause was not specified, then the label is4209* the name of the column4210* @param x the new column value4211* @param targetSqlType the SQL type to be sent to the database4212* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,4213* this is the number of digits after the decimal point. For4214* Java Object types {@code InputStream} and {@code Reader},4215* this is the length4216* of the data in the stream or reader. For all other types,4217* this value will be ignored.4218* @exception SQLException if the columnLabel is not valid;4219* if a database access error occurs;4220* the result set concurrency is {@code CONCUR_READ_ONLY}4221* or this method is called on a closed result set4222* @exception SQLFeatureNotSupportedException if the JDBC driver does not4223* support this method; if the JDBC driver does not support the specified targetSqlType4224* @see JDBCType4225* @see SQLType4226* @since 1.84227*/4228default void updateObject(String columnLabel, Object x,4229SQLType targetSqlType, int scaleOrLength) throws SQLException {4230throw new SQLFeatureNotSupportedException("updateObject not implemented");4231}42324233/**4234* Updates the designated column with an {@code Object} value.4235*4236* The updater methods are used to update column values in the4237* current row or the insert row. The updater methods do not4238* update the underlying database; instead the {@code updateRow} or4239* {@code insertRow} methods are called to update the database.4240*<p>4241* The default implementation will throw {@code SQLFeatureNotSupportedException}4242*4243* @param columnIndex the first column is 1, the second is 2, ...4244* @param x the new column value4245* @param targetSqlType the SQL type to be sent to the database4246* @exception SQLException if the columnIndex is not valid;4247* if a database access error occurs;4248* the result set concurrency is {@code CONCUR_READ_ONLY}4249* or this method is called on a closed result set4250* @exception SQLFeatureNotSupportedException if the JDBC driver does not4251* support this method; if the JDBC driver does not support the specified targetSqlType4252* @see JDBCType4253* @see SQLType4254* @since 1.84255*/4256default void updateObject(int columnIndex, Object x, SQLType targetSqlType)4257throws SQLException {4258throw new SQLFeatureNotSupportedException("updateObject not implemented");4259}42604261/**4262* Updates the designated column with an {@code Object} value.4263*4264* The updater methods are used to update column values in the4265* current row or the insert row. The updater methods do not4266* update the underlying database; instead the {@code updateRow} or4267* {@code insertRow} methods are called to update the database.4268*<p>4269* The default implementation will throw {@code SQLFeatureNotSupportedException}4270*4271* @param columnLabel the label for the column specified with the SQL AS4272* clause. If the SQL AS clause was not specified, then the label is4273* the name of the column4274* @param x the new column value4275* @param targetSqlType the SQL type to be sent to the database4276* @exception SQLException if the columnLabel is not valid;4277* if a database access error occurs;4278* the result set concurrency is {@code CONCUR_READ_ONLY}4279* or this method is called on a closed result set4280* @exception SQLFeatureNotSupportedException if the JDBC driver does not4281* support this method; if the JDBC driver does not support the specified targetSqlType4282* @see JDBCType4283* @see SQLType4284* @since 1.84285*/4286default void updateObject(String columnLabel, Object x,4287SQLType targetSqlType) throws SQLException {4288throw new SQLFeatureNotSupportedException("updateObject not implemented");4289}4290}429142924293