Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.sql/share/classes/java/sql/ResultSet.java
41153 views
1
/*
2
* Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package java.sql;
27
28
import java.math.BigDecimal;
29
import java.util.Calendar;
30
import java.io.Reader;
31
import java.io.InputStream;
32
33
/**
34
* A table of data representing a database result set, which
35
* is usually generated by executing a statement that queries the database.
36
*
37
* <P>A {@code ResultSet} object maintains a cursor pointing
38
* to its current row of data. Initially the cursor is positioned
39
* before the first row. The {@code next} method moves the
40
* cursor to the next row, and because it returns {@code false}
41
* when there are no more rows in the {@code ResultSet} object,
42
* it can be used in a {@code while} loop to iterate through
43
* the result set.
44
* <P>
45
* A default {@code ResultSet} object is not updatable and
46
* has a cursor that moves forward only. Thus, you can
47
* iterate through it only once and only from the first row to the
48
* last row. It is possible to
49
* produce {@code ResultSet} objects that are scrollable and/or
50
* updatable. The following code fragment, in which {@code con}
51
* is a valid {@code Connection} object, illustrates how to make
52
* a result set that is scrollable and insensitive to updates by others, and
53
* that is updatable. See {@code ResultSet} fields for other
54
* options.
55
* <PRE>
56
*
57
* Statement stmt = con.createStatement(
58
* ResultSet.TYPE_SCROLL_INSENSITIVE,
59
* ResultSet.CONCUR_UPDATABLE);
60
* ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
61
* // rs will be scrollable, will not show changes made by others,
62
* // and will be updatable
63
*
64
* </PRE>
65
* The {@code ResultSet} interface provides
66
* <i>getter</i> methods ({@code getBoolean}, {@code getLong}, and so on)
67
* for retrieving column values from the current row.
68
* Values can be retrieved using either the index number of the
69
* column or the name of the column. In general, using the
70
* column index will be more efficient. Columns are numbered from 1.
71
* For maximum portability, result set columns within each row should be
72
* read in left-to-right order, and each column should be read only once.
73
*
74
* <P>For the getter methods, a JDBC driver attempts
75
* to convert the underlying data to the Java type specified in the
76
* getter method and returns a suitable Java value. The JDBC specification
77
* has a table showing the allowable mappings from SQL types to Java types
78
* that can be used by the {@code ResultSet} getter methods.
79
*
80
* <P>Column names used as input to getter methods are case
81
* insensitive. When a getter method is called with
82
* a column name and several columns have the same name,
83
* the value of the first matching column will be returned.
84
* The column name option is
85
* designed to be used when column names are used in the SQL
86
* query that generated the result set.
87
* For columns that are NOT explicitly named in the query, it
88
* is best to use column numbers. If column names are used, the
89
* programmer should take care to guarantee that they uniquely refer to
90
* the intended columns, which can be assured with the SQL <i>AS</i> clause.
91
* <P>
92
* A set of updater methods were added to this interface
93
* in the JDBC 2.0 API (Java 2 SDK,
94
* Standard Edition, version 1.2). The comments regarding parameters
95
* to the getter methods also apply to parameters to the
96
* updater methods.
97
*<P>
98
* The updater methods may be used in two ways:
99
* <ol>
100
* <LI>to update a column value in the current row. In a scrollable
101
* {@code ResultSet} object, the cursor can be moved backwards
102
* and forwards, to an absolute position, or to a position
103
* relative to the current row.
104
* The following code fragment updates the {@code NAME} column
105
* in the fifth row of the {@code ResultSet} object
106
* {@code rs} and then uses the method {@code updateRow}
107
* to update the data source table from which {@code rs} was derived.
108
* <PRE>
109
*
110
* rs.absolute(5); // moves the cursor to the fifth row of rs
111
* rs.updateString("NAME", "AINSWORTH"); // updates the
112
* // {@code NAME} column of row 5 to be {@code AINSWORTH}
113
* rs.updateRow(); // updates the row in the data source
114
*
115
* </PRE>
116
* <LI>to insert column values into the insert row. An updatable
117
* {@code ResultSet} object has a special row associated with
118
* it that serves as a staging area for building a row to be inserted.
119
* The following code fragment moves the cursor to the insert row, builds
120
* a three-column row, and inserts it into {@code rs} and into
121
* the data source table using the method {@code insertRow}.
122
* <PRE>
123
*
124
* rs.moveToInsertRow(); // moves cursor to the insert row
125
* rs.updateString(1, "AINSWORTH"); // updates the
126
* // first column of the insert row to be {@code AINSWORTH}
127
* rs.updateInt(2,35); // updates the second column to be {@code 35}
128
* rs.updateBoolean(3, true); // updates the third column to {@code true}
129
* rs.insertRow();
130
* rs.moveToCurrentRow();
131
*
132
* </PRE>
133
* </ol>
134
* <P>A {@code ResultSet} object is automatically closed when the
135
* {@code Statement} object that
136
* generated it is closed, re-executed, or used
137
* to retrieve the next result from a sequence of multiple results.
138
*
139
* <P>The number, types and properties of a {@code ResultSet}
140
* object's columns are provided by the {@code ResultSetMetaData}
141
* object returned by the {@code ResultSet.getMetaData} method.
142
*
143
* @see Statement#executeQuery
144
* @see Statement#getResultSet
145
* @see ResultSetMetaData
146
* @since 1.1
147
*/
148
149
public interface ResultSet extends Wrapper, AutoCloseable {
150
151
/**
152
* Moves the cursor forward one row from its current position.
153
* A {@code ResultSet} cursor is initially positioned
154
* before the first row; the first call to the method
155
* {@code next} makes the first row the current row; the
156
* second call makes the second row the current row, and so on.
157
* <p>
158
* When a call to the {@code next} method returns {@code false},
159
* the cursor is positioned after the last row. Any
160
* invocation of a {@code ResultSet} method which requires a
161
* current row will result in a {@code SQLException} being thrown.
162
* If the result set type is {@code TYPE_FORWARD_ONLY}, it is vendor specified
163
* whether their JDBC driver implementation will return {@code false} or
164
* throw an {@code SQLException} on a
165
* subsequent call to {@code next}.
166
*
167
* <P>If an input stream is open for the current row, a call
168
* to the method {@code next} will
169
* implicitly close it. A {@code ResultSet} object's
170
* warning chain is cleared when a new row is read.
171
*
172
* @return {@code true} if the new current row is valid;
173
* {@code false} if there are no more rows
174
* @throws SQLException if a database access error occurs or this method is
175
* called on a closed result set
176
*/
177
boolean next() throws SQLException;
178
179
180
/**
181
* Releases this {@code ResultSet} object's database and
182
* JDBC resources immediately instead of waiting for
183
* this to happen when it is automatically closed.
184
*
185
* <P>The closing of a {@code ResultSet} object does <strong>not</strong> close the {@code Blob},
186
* {@code Clob} or {@code NClob} objects created by the {@code ResultSet}. {@code Blob},
187
* {@code Clob} or {@code NClob} objects remain valid for at least the duration of the
188
* transaction in which they are created, unless their {@code free} method is invoked.
189
*<p>
190
* When a {@code ResultSet} is closed, any {@code ResultSetMetaData}
191
* instances that were created by calling the {@code getMetaData}
192
* method remain accessible.
193
*
194
* <P><B>Note:</B> A {@code ResultSet} object
195
* is automatically closed by the
196
* {@code Statement} object that generated it when
197
* that {@code Statement} object is closed,
198
* re-executed, or is used to retrieve the next result from a
199
* sequence of multiple results.
200
*<p>
201
* Calling the method {@code close} on a {@code ResultSet}
202
* object that is already closed is a no-op.
203
*
204
*
205
* @throws SQLException if a database access error occurs
206
*/
207
void close() throws SQLException;
208
209
/**
210
* Reports whether
211
* the last column read had a value of SQL {@code NULL}.
212
* Note that you must first call one of the getter methods
213
* on a column to try to read its value and then call
214
* the method {@code wasNull} to see if the value read was
215
* SQL {@code NULL}.
216
*
217
* @return {@code true} if the last column value read was SQL
218
* {@code NULL} and {@code false} otherwise
219
* @throws SQLException if a database access error occurs or this method is
220
* called on a closed result set
221
*/
222
boolean wasNull() throws SQLException;
223
224
// Methods for accessing results by column index
225
226
/**
227
* Retrieves the value of the designated column in the current row
228
* of this {@code ResultSet} object as
229
* a {@code String} in the Java programming language.
230
*
231
* @param columnIndex the first column is 1, the second is 2, ...
232
* @return the column value; if the value is SQL {@code NULL}, the
233
* value returned is {@code null}
234
* @throws SQLException if the columnIndex is not valid;
235
* if a database access error occurs or this method is
236
* called on a closed result set
237
*/
238
String getString(int columnIndex) throws SQLException;
239
240
/**
241
* Retrieves the value of the designated column in the current row
242
* of this {@code ResultSet} object as
243
* a {@code boolean} in the Java programming language.
244
*
245
* <P>If the designated column has a datatype of CHAR or VARCHAR
246
* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
247
* and contains a 0, a value of {@code false} is returned. If the designated column has a datatype
248
* of CHAR or VARCHAR
249
* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
250
* and contains a 1, a value of {@code true} is returned.
251
*
252
* @param columnIndex the first column is 1, the second is 2, ...
253
* @return the column value; if the value is SQL {@code NULL}, the
254
* value returned is {@code false}
255
* @throws SQLException if the columnIndex is not valid;
256
* if a database access error occurs or this method is
257
* called on a closed result set
258
*/
259
boolean getBoolean(int columnIndex) throws SQLException;
260
261
/**
262
* Retrieves the value of the designated column in the current row
263
* of this {@code ResultSet} object as
264
* a {@code byte} in the Java programming language.
265
*
266
* @param columnIndex the first column is 1, the second is 2, ...
267
* @return the column value; if the value is SQL {@code NULL}, the
268
* value returned is {@code 0}
269
* @throws SQLException if the columnIndex is not valid;
270
* if a database access error occurs or this method is
271
* called on a closed result set
272
*/
273
byte getByte(int columnIndex) throws SQLException;
274
275
/**
276
* Retrieves the value of the designated column in the current row
277
* of this {@code ResultSet} object as
278
* a {@code short} in the Java programming language.
279
*
280
* @param columnIndex the first column is 1, the second is 2, ...
281
* @return the column value; if the value is SQL {@code NULL}, the
282
* value returned is {@code 0}
283
* @throws SQLException if the columnIndex is not valid;
284
* if a database access error occurs or this method is
285
* called on a closed result set
286
*/
287
short getShort(int columnIndex) throws SQLException;
288
289
/**
290
* Retrieves the value of the designated column in the current row
291
* of this {@code ResultSet} object as
292
* an {@code int} in the Java programming language.
293
*
294
* @param columnIndex the first column is 1, the second is 2, ...
295
* @return the column value; if the value is SQL {@code NULL}, the
296
* value returned is {@code 0}
297
* @throws SQLException if the columnIndex is not valid;
298
* if a database access error occurs or this method is
299
* called on a closed result set
300
*/
301
int getInt(int columnIndex) throws SQLException;
302
303
/**
304
* Retrieves the value of the designated column in the current row
305
* of this {@code ResultSet} object as
306
* a {@code long} in the Java programming language.
307
*
308
* @param columnIndex the first column is 1, the second is 2, ...
309
* @return the column value; if the value is SQL {@code NULL}, the
310
* value returned is {@code 0}
311
* @throws SQLException if the columnIndex is not valid;
312
* if a database access error occurs or this method is
313
* called on a closed result set
314
*/
315
long getLong(int columnIndex) throws SQLException;
316
317
/**
318
* Retrieves the value of the designated column in the current row
319
* of this {@code ResultSet} object as
320
* a {@code float} in the Java programming language.
321
*
322
* @param columnIndex the first column is 1, the second is 2, ...
323
* @return the column value; if the value is SQL {@code NULL}, the
324
* value returned is {@code 0}
325
* @throws SQLException if the columnIndex is not valid;
326
* if a database access error occurs or this method is
327
* called on a closed result set
328
*/
329
float getFloat(int columnIndex) throws SQLException;
330
331
/**
332
* Retrieves the value of the designated column in the current row
333
* of this {@code ResultSet} object as
334
* a {@code double} in the Java programming language.
335
*
336
* @param columnIndex the first column is 1, the second is 2, ...
337
* @return the column value; if the value is SQL {@code NULL}, the
338
* value returned is {@code 0}
339
* @throws SQLException if the columnIndex is not valid;
340
* if a database access error occurs or this method is
341
* called on a closed result set
342
*/
343
double getDouble(int columnIndex) throws SQLException;
344
345
/**
346
* Retrieves the value of the designated column in the current row
347
* of this {@code ResultSet} object as
348
* a {@code java.sql.BigDecimal} in the Java programming language.
349
*
350
* @param columnIndex the first column is 1, the second is 2, ...
351
* @param scale the number of digits to the right of the decimal point
352
* @return the column value; if the value is SQL {@code NULL}, the
353
* value returned is {@code null}
354
* @throws SQLException if the columnIndex is not valid;
355
* if a database access error occurs or this method is
356
* called on a closed result set
357
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
358
* this method
359
* @deprecated Use {@code getBigDecimal(int columnIndex)}
360
* or {@code getBigDecimal(String columnLabel)}
361
*/
362
@Deprecated(since="1.2")
363
BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException;
364
365
/**
366
* Retrieves the value of the designated column in the current row
367
* of this {@code ResultSet} object as
368
* a {@code byte} array in the Java programming language.
369
* The bytes represent the raw values returned by the driver.
370
*
371
* @param columnIndex the first column is 1, the second is 2, ...
372
* @return the column value; if the value is SQL {@code NULL}, the
373
* value returned is {@code null}
374
* @throws SQLException if the columnIndex is not valid;
375
* if a database access error occurs or this method is
376
* called on a closed result set
377
*/
378
byte[] getBytes(int columnIndex) throws SQLException;
379
380
/**
381
* Retrieves the value of the designated column in the current row
382
* of this {@code ResultSet} object as
383
* a {@code java.sql.Date} object in the Java programming language.
384
*
385
* @param columnIndex the first column is 1, the second is 2, ...
386
* @return the column value; if the value is SQL {@code NULL}, the
387
* value returned is {@code null}
388
* @throws SQLException if the columnIndex is not valid;
389
* if a database access error occurs or this method is
390
* called on a closed result set
391
*/
392
java.sql.Date getDate(int columnIndex) throws SQLException;
393
394
/**
395
* Retrieves the value of the designated column in the current row
396
* of this {@code ResultSet} object as
397
* a {@code java.sql.Time} object in the Java programming language.
398
*
399
* @param columnIndex the first column is 1, the second is 2, ...
400
* @return the column value; if the value is SQL {@code NULL}, the
401
* value returned is {@code null}
402
* @throws SQLException if the columnIndex is not valid;
403
* if a database access error occurs or this method is
404
* called on a closed result set
405
*/
406
java.sql.Time getTime(int columnIndex) throws SQLException;
407
408
/**
409
* Retrieves the value of the designated column in the current row
410
* of this {@code ResultSet} object as
411
* a {@code java.sql.Timestamp} object in the Java programming language.
412
*
413
* @param columnIndex the first column is 1, the second is 2, ...
414
* @return the column value; if the value is SQL {@code NULL}, the
415
* value returned is {@code null}
416
* @throws SQLException if the columnIndex is not valid;
417
* if a database access error occurs or this method is
418
* called on a closed result set
419
*/
420
java.sql.Timestamp getTimestamp(int columnIndex) throws SQLException;
421
422
/**
423
* Retrieves the value of the designated column in the current row
424
* of this {@code ResultSet} object as
425
* a stream of ASCII characters. The value can then be read in chunks from the
426
* stream. This method is particularly
427
* suitable for retrieving large {@code LONGVARCHAR} values.
428
* The JDBC driver will
429
* do any necessary conversion from the database format into ASCII.
430
*
431
* <P><B>Note:</B> All the data in the returned stream must be
432
* read prior to getting the value of any other column. The next
433
* call to a getter method implicitly closes the stream. Also, a
434
* stream may return {@code 0} when the method
435
* {@code InputStream.available}
436
* is called whether there is data available or not.
437
*
438
* @param columnIndex the first column is 1, the second is 2, ...
439
* @return a Java input stream that delivers the database column value
440
* as a stream of one-byte ASCII characters;
441
* if the value is SQL {@code NULL}, the
442
* value returned is {@code null}
443
* @throws SQLException if the columnIndex is not valid;
444
* if a database access error occurs or this method is
445
* called on a closed result set
446
*/
447
java.io.InputStream getAsciiStream(int columnIndex) throws SQLException;
448
449
/**
450
* Retrieves the value of the designated column in the current row
451
* of this {@code ResultSet} object as
452
* as a stream of two-byte 3 characters. The first byte is
453
* the high byte; the second byte is the low byte.
454
*
455
* The value can then be read in chunks from the
456
* stream. This method is particularly
457
* suitable for retrieving large {@code LONGVARCHAR}values. The
458
* JDBC driver will do any necessary conversion from the database
459
* format into Unicode.
460
*
461
* <P><B>Note:</B> All the data in the returned stream must be
462
* read prior to getting the value of any other column. The next
463
* call to a getter method implicitly closes the stream.
464
* Also, a stream may return {@code 0} when the method
465
* {@code InputStream.available}
466
* is called, whether there is data available or not.
467
*
468
* @param columnIndex the first column is 1, the second is 2, ...
469
* @return a Java input stream that delivers the database column value
470
* as a stream of two-byte Unicode characters;
471
* if the value is SQL {@code NULL}, the value returned is
472
* {@code null}
473
*
474
* @throws SQLException if the columnIndex is not valid;
475
* if a database access error occurs or this method is
476
* called on a closed result set
477
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
478
* this method
479
* @deprecated use {@code getCharacterStream} in place of
480
* {@code getUnicodeStream}
481
*/
482
@Deprecated(since="1.2")
483
java.io.InputStream getUnicodeStream(int columnIndex) throws SQLException;
484
485
/**
486
* Retrieves the value of the designated column in the current row
487
* of this {@code ResultSet} object as a stream of
488
* uninterpreted bytes. The value can then be read in chunks from the
489
* stream. This method is particularly
490
* suitable for retrieving large {@code LONGVARBINARY} values.
491
*
492
* <P><B>Note:</B> All the data in the returned stream must be
493
* read prior to getting the value of any other column. The next
494
* call to a getter method implicitly closes the stream. Also, a
495
* stream may return {@code 0} when the method
496
* {@code InputStream.available}
497
* is called whether there is data available or not.
498
*
499
* @param columnIndex the first column is 1, the second is 2, ...
500
* @return a Java input stream that delivers the database column value
501
* as a stream of uninterpreted bytes;
502
* if the value is SQL {@code NULL}, the value returned is
503
* {@code null}
504
* @throws SQLException if the columnIndex is not valid;
505
* if a database access error occurs or this method is
506
* called on a closed result set
507
*/
508
java.io.InputStream getBinaryStream(int columnIndex)
509
throws SQLException;
510
511
512
// Methods for accessing results by column label
513
514
/**
515
* Retrieves the value of the designated column in the current row
516
* of this {@code ResultSet} object as
517
* a {@code String} in the Java programming language.
518
*
519
* @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 column
520
* @return the column value; if the value is SQL {@code NULL}, the
521
* value returned is {@code null}
522
* @throws SQLException if the columnLabel is not valid;
523
* if a database access error occurs or this method is
524
* called on a closed result set
525
*/
526
String getString(String columnLabel) throws SQLException;
527
528
/**
529
* Retrieves the value of the designated column in the current row
530
* of this {@code ResultSet} object as
531
* a {@code boolean} in the Java programming language.
532
*
533
* <P>If the designated column has a datatype of CHAR or VARCHAR
534
* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
535
* and contains a 0, a value of {@code false} is returned. If the designated column has a datatype
536
* of CHAR or VARCHAR
537
* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
538
* and contains a 1, a value of {@code true} is returned.
539
*
540
* @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 column
541
* @return the column value; if the value is SQL {@code NULL}, the
542
* value returned is {@code false}
543
* @throws SQLException if the columnLabel is not valid;
544
* if a database access error occurs or this method is
545
* called on a closed result set
546
*/
547
boolean getBoolean(String columnLabel) throws SQLException;
548
549
/**
550
* Retrieves the value of the designated column in the current row
551
* of this {@code ResultSet} object as
552
* a {@code byte} in the Java programming language.
553
*
554
* @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 column
555
* @return the column value; if the value is SQL {@code NULL}, the
556
* value returned is {@code 0}
557
* @throws SQLException if the columnLabel is not valid;
558
* if a database access error occurs or this method is
559
* called on a closed result set
560
*/
561
byte getByte(String columnLabel) throws SQLException;
562
563
/**
564
* Retrieves the value of the designated column in the current row
565
* of this {@code ResultSet} object as
566
* a {@code short} in the Java programming language.
567
*
568
* @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 column
569
* @return the column value; if the value is SQL {@code NULL}, the
570
* value returned is {@code 0}
571
* @throws SQLException if the columnLabel is not valid;
572
* if a database access error occurs or this method is
573
* called on a closed result set
574
*/
575
short getShort(String columnLabel) throws SQLException;
576
577
/**
578
* Retrieves the value of the designated column in the current row
579
* of this {@code ResultSet} object as
580
* an {@code int} in the Java programming language.
581
*
582
* @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 column
583
* @return the column value; if the value is SQL {@code NULL}, the
584
* value returned is {@code 0}
585
* @throws SQLException if the columnLabel is not valid;
586
* if a database access error occurs or this method is
587
* called on a closed result set
588
*/
589
int getInt(String columnLabel) throws SQLException;
590
591
/**
592
* Retrieves the value of the designated column in the current row
593
* of this {@code ResultSet} object as
594
* a {@code long} in the Java programming language.
595
*
596
* @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 column
597
* @return the column value; if the value is SQL {@code NULL}, the
598
* value returned is {@code 0}
599
* @throws SQLException if the columnLabel is not valid;
600
* if a database access error occurs or this method is
601
* called on a closed result set
602
*/
603
long getLong(String columnLabel) throws SQLException;
604
605
/**
606
* Retrieves the value of the designated column in the current row
607
* of this {@code ResultSet} object as
608
* a {@code float} in the Java programming language.
609
*
610
* @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 column
611
* @return the column value; if the value is SQL {@code NULL}, the
612
* value returned is {@code 0}
613
* @throws SQLException if the columnLabel is not valid;
614
* if a database access error occurs or this method is
615
* called on a closed result set
616
*/
617
float getFloat(String columnLabel) throws SQLException;
618
619
/**
620
* Retrieves the value of the designated column in the current row
621
* of this {@code ResultSet} object as
622
* a {@code double} in the Java programming language.
623
*
624
* @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 column
625
* @return the column value; if the value is SQL {@code NULL}, the
626
* value returned is {@code 0}
627
* @throws SQLException if the columnLabel is not valid;
628
* if a database access error occurs or this method is
629
* called on a closed result set
630
*/
631
double getDouble(String columnLabel) throws SQLException;
632
633
/**
634
* Retrieves the value of the designated column in the current row
635
* of this {@code ResultSet} object as
636
* a {@code java.math.BigDecimal} in the Java programming language.
637
*
638
* @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 column
639
* @param scale the number of digits to the right of the decimal point
640
* @return the column value; if the value is SQL {@code NULL}, the
641
* value returned is {@code null}
642
* @throws SQLException if the columnLabel is not valid;
643
* if a database access error occurs or this method is
644
* called on a closed result set
645
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
646
* this method
647
* @deprecated Use {@code getBigDecimal(int columnIndex)}
648
* or {@code getBigDecimal(String columnLabel)}
649
*/
650
@Deprecated(since="1.2")
651
BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException;
652
653
/**
654
* Retrieves the value of the designated column in the current row
655
* of this {@code ResultSet} object as
656
* a {@code byte} array in the Java programming language.
657
* The bytes represent the raw values returned by the driver.
658
*
659
* @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 column
660
* @return the column value; if the value is SQL {@code NULL}, the
661
* value returned is {@code null}
662
* @throws SQLException if the columnLabel is not valid;
663
* if a database access error occurs or this method is
664
* called on a closed result set
665
*/
666
byte[] getBytes(String columnLabel) throws SQLException;
667
668
/**
669
* Retrieves the value of the designated column in the current row
670
* of this {@code ResultSet} object as
671
* a {@code java.sql.Date} object in the Java programming language.
672
*
673
* @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 column
674
* @return the column value; if the value is SQL {@code NULL}, the
675
* value returned is {@code null}
676
* @throws SQLException if the columnLabel is not valid;
677
* if a database access error occurs or this method is
678
* called on a closed result set
679
*/
680
java.sql.Date getDate(String columnLabel) throws SQLException;
681
682
/**
683
* Retrieves the value of the designated column in the current row
684
* of this {@code ResultSet} object as
685
* a {@code java.sql.Time} object in the Java programming language.
686
*
687
* @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 column
688
* @return the column value;
689
* if the value is SQL {@code NULL},
690
* the value returned is {@code null}
691
* @throws SQLException if the columnLabel is not valid;
692
* if a database access error occurs or this method is
693
* called on a closed result set
694
*/
695
java.sql.Time getTime(String columnLabel) throws SQLException;
696
697
/**
698
* Retrieves the value of the designated column in the current row
699
* of this {@code ResultSet} object as
700
* a {@code java.sql.Timestamp} object in the Java programming language.
701
*
702
* @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 column
703
* @return the column value; if the value is SQL {@code NULL}, the
704
* value returned is {@code null}
705
* @throws SQLException if the columnLabel is not valid;
706
* if a database access error occurs or this method is
707
* called on a closed result set
708
*/
709
java.sql.Timestamp getTimestamp(String columnLabel) throws SQLException;
710
711
/**
712
* Retrieves the value of the designated column in the current row
713
* of this {@code ResultSet} object as a stream of
714
* ASCII characters. The value can then be read in chunks from the
715
* stream. This method is particularly
716
* suitable for retrieving large {@code LONGVARCHAR} values.
717
* The JDBC driver will
718
* do any necessary conversion from the database format into ASCII.
719
*
720
* <P><B>Note:</B> All the data in the returned stream must be
721
* read prior to getting the value of any other column. The next
722
* call to a getter method implicitly closes the stream. Also, a
723
* stream may return {@code 0} when the method {@code available}
724
* is called whether there is data available or not.
725
*
726
* @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 column
727
* @return a Java input stream that delivers the database column value
728
* as a stream of one-byte ASCII characters.
729
* If the value is SQL {@code NULL},
730
* the value returned is {@code null}.
731
* @throws SQLException if the columnLabel is not valid;
732
* if a database access error occurs or this method is
733
* called on a closed result set
734
*/
735
java.io.InputStream getAsciiStream(String columnLabel) throws SQLException;
736
737
/**
738
* Retrieves the value of the designated column in the current row
739
* of this {@code ResultSet} object as a stream of two-byte
740
* Unicode characters. The first byte is the high byte; the second
741
* byte is the low byte.
742
*
743
* The value can then be read in chunks from the
744
* stream. This method is particularly
745
* suitable for retrieving large {@code LONGVARCHAR} values.
746
* The JDBC technology-enabled driver will
747
* do any necessary conversion from the database format into Unicode.
748
*
749
* <P><B>Note:</B> All the data in the returned stream must be
750
* read prior to getting the value of any other column. The next
751
* call to a getter method implicitly closes the stream.
752
* Also, a stream may return {@code 0} when the method
753
* {@code InputStream.available} is called, whether there
754
* is data available or not.
755
*
756
* @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 column
757
* @return a Java input stream that delivers the database column value
758
* as a stream of two-byte Unicode characters.
759
* If the value is SQL {@code NULL}, the value returned
760
* is {@code null}.
761
* @throws SQLException if the columnLabel is not valid;
762
* if a database access error occurs or this method is
763
* called on a closed result set
764
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
765
* this method
766
* @deprecated use {@code getCharacterStream} instead
767
*/
768
@Deprecated(since="1.2")
769
java.io.InputStream getUnicodeStream(String columnLabel) throws SQLException;
770
771
/**
772
* Retrieves the value of the designated column in the current row
773
* of this {@code ResultSet} object as a stream of uninterpreted
774
* {@code byte}s.
775
* The value can then be read in chunks from the
776
* stream. This method is particularly
777
* suitable for retrieving large {@code LONGVARBINARY}
778
* values.
779
*
780
* <P><B>Note:</B> All the data in the returned stream must be
781
* read prior to getting the value of any other column. The next
782
* call to a getter method implicitly closes the stream. Also, a
783
* stream may return {@code 0} when the method {@code available}
784
* is called whether there is data available or not.
785
*
786
* @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 column
787
* @return a Java input stream that delivers the database column value
788
* as a stream of uninterpreted bytes;
789
* if the value is SQL {@code NULL}, the result is {@code null}
790
* @throws SQLException if the columnLabel is not valid;
791
* if a database access error occurs or this method is
792
* called on a closed result set
793
*/
794
java.io.InputStream getBinaryStream(String columnLabel)
795
throws SQLException;
796
797
798
// Advanced features:
799
800
/**
801
* Retrieves the first warning reported by calls on this
802
* {@code ResultSet} object.
803
* Subsequent warnings on this {@code ResultSet} object
804
* will be chained to the {@code SQLWarning} object that
805
* this method returns.
806
*
807
* <P>The warning chain is automatically cleared each time a new
808
* row is read. This method may not be called on a {@code ResultSet}
809
* object that has been closed; doing so will cause an
810
* {@code SQLException} to be thrown.
811
* <P>
812
* <B>Note:</B> This warning chain only covers warnings caused
813
* by {@code ResultSet} methods. Any warning caused by
814
* {@code Statement} methods
815
* (such as reading OUT parameters) will be chained on the
816
* {@code Statement} object.
817
*
818
* @return the first {@code SQLWarning} object reported or
819
* {@code null} if there are none
820
* @throws SQLException if a database access error occurs or this method is
821
* called on a closed result set
822
*/
823
SQLWarning getWarnings() throws SQLException;
824
825
/**
826
* Clears all warnings reported on this {@code ResultSet} object.
827
* After this method is called, the method {@code getWarnings}
828
* returns {@code null} until a new warning is
829
* reported for this {@code ResultSet} object.
830
*
831
* @throws SQLException if a database access error occurs or this method is
832
* called on a closed result set
833
*/
834
void clearWarnings() throws SQLException;
835
836
/**
837
* Retrieves the name of the SQL cursor used by this {@code ResultSet}
838
* object.
839
*
840
* <P>In SQL, a result table is retrieved through a cursor that is
841
* named. The current row of a result set can be updated or deleted
842
* using a positioned update/delete statement that references the
843
* cursor name. To insure that the cursor has the proper isolation
844
* level to support update, the cursor's {@code SELECT} statement
845
* should be of the form {@code SELECT FOR UPDATE}. If
846
* {@code FOR UPDATE} is omitted, the positioned updates may fail.
847
*
848
* <P>The JDBC API supports this SQL feature by providing the name of the
849
* SQL cursor used by a {@code ResultSet} object.
850
* The current row of a {@code ResultSet} object
851
* is also the current row of this SQL cursor.
852
*
853
* @return the SQL name for this {@code ResultSet} object's cursor
854
* @throws SQLException if a database access error occurs or this method is called on a closed result set
855
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
856
* this method
857
*/
858
String getCursorName() throws SQLException;
859
860
/**
861
* Retrieves the number, types and properties of
862
* this {@code ResultSet} object's columns.
863
*
864
* @return the description of this {@code ResultSet} object's columns
865
* @throws SQLException if a database access error occurs or this method is
866
* called on a closed result set
867
*/
868
ResultSetMetaData getMetaData() throws SQLException;
869
870
/**
871
* <p>Gets the value of the designated column in the current row
872
* of this {@code ResultSet} object as
873
* an {@code Object} in the Java programming language.
874
*
875
* <p>This method will return the value of the given column as a
876
* Java object. The type of the Java object will be the default
877
* Java object type corresponding to the column's SQL type,
878
* following the mapping for built-in types specified in the JDBC
879
* specification. If the value is an SQL {@code NULL},
880
* the driver returns a Java {@code null}.
881
*
882
* <p>This method may also be used to read database-specific
883
* abstract data types.
884
*
885
* In the JDBC 2.0 API, the behavior of method
886
* {@code getObject} is extended to materialize
887
* data of SQL user-defined types.
888
* <p>
889
* If {@code Connection.getTypeMap} does not throw a
890
* {@code SQLFeatureNotSupportedException},
891
* then when a column contains a structured or distinct value,
892
* the behavior of this method is as
893
* if it were a call to: {@code getObject(columnIndex,
894
* this.getStatement().getConnection().getTypeMap())}.
895
*
896
* If {@code Connection.getTypeMap} does throw a
897
* {@code SQLFeatureNotSupportedException},
898
* then structured values are not supported, and distinct values
899
* are mapped to the default Java class as determined by the
900
* underlying SQL type of the DISTINCT type.
901
*
902
* @param columnIndex the first column is 1, the second is 2, ...
903
* @return a {@code java.lang.Object} holding the column value
904
* @throws SQLException if the columnIndex is not valid;
905
* if a database access error occurs or this method is
906
* called on a closed result set
907
*/
908
Object getObject(int columnIndex) throws SQLException;
909
910
/**
911
* <p>Gets the value of the designated column in the current row
912
* of this {@code ResultSet} object as
913
* an {@code Object} in the Java programming language.
914
*
915
* <p>This method will return the value of the given column as a
916
* Java object. The type of the Java object will be the default
917
* Java object type corresponding to the column's SQL type,
918
* following the mapping for built-in types specified in the JDBC
919
* specification. If the value is an SQL {@code NULL},
920
* the driver returns a Java {@code null}.
921
* <P>
922
* This method may also be used to read database-specific
923
* abstract data types.
924
* <P>
925
* In the JDBC 2.0 API, the behavior of the method
926
* {@code getObject} is extended to materialize
927
* data of SQL user-defined types. When a column contains
928
* a structured or distinct value, the behavior of this method is as
929
* if it were a call to: {@code getObject(columnIndex,
930
* this.getStatement().getConnection().getTypeMap())}.
931
*
932
* @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 column
933
* @return a {@code java.lang.Object} holding the column value
934
* @throws SQLException if the columnLabel is not valid;
935
* if a database access error occurs or this method is
936
* called on a closed result set
937
*/
938
Object getObject(String columnLabel) throws SQLException;
939
940
//----------------------------------------------------------------
941
942
/**
943
* Maps the given {@code ResultSet} column label to its
944
* {@code ResultSet} column index.
945
*
946
* @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 column
947
* @return the column index of the given column name
948
* @throws SQLException if the {@code ResultSet} object
949
* does not contain a column labeled {@code columnLabel}, a database access error occurs
950
* or this method is called on a closed result set
951
*/
952
int findColumn(String columnLabel) throws SQLException;
953
954
955
//--------------------------JDBC 2.0-----------------------------------
956
957
//---------------------------------------------------------------------
958
// Getters and Setters
959
//---------------------------------------------------------------------
960
961
/**
962
* Retrieves the value of the designated column in the current row
963
* of this {@code ResultSet} object as a
964
* {@code java.io.Reader} object.
965
* @return a {@code java.io.Reader} object that contains the column
966
* value; if the value is SQL {@code NULL}, the value returned is
967
* {@code null} in the Java programming language.
968
* @param columnIndex the first column is 1, the second is 2, ...
969
* @throws SQLException if the columnIndex is not valid;
970
* if a database access error occurs or this method is
971
* called on a closed result set
972
* @since 1.2
973
*/
974
java.io.Reader getCharacterStream(int columnIndex) throws SQLException;
975
976
/**
977
* Retrieves the value of the designated column in the current row
978
* of this {@code ResultSet} object as a
979
* {@code java.io.Reader} object.
980
*
981
* @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 column
982
* @return a {@code java.io.Reader} object that contains the column
983
* value; if the value is SQL {@code NULL}, the value returned is
984
* {@code null} in the Java programming language
985
* @throws SQLException if the columnLabel is not valid;
986
* if a database access error occurs or this method is
987
* called on a closed result set
988
* @since 1.2
989
*/
990
java.io.Reader getCharacterStream(String columnLabel) throws SQLException;
991
992
/**
993
* Retrieves the value of the designated column in the current row
994
* of this {@code ResultSet} object as a
995
* {@code java.math.BigDecimal} with full precision.
996
*
997
* @param columnIndex the first column is 1, the second is 2, ...
998
* @return the column value (full precision);
999
* if the value is SQL {@code NULL}, the value returned is
1000
* {@code null} in the Java programming language.
1001
* @throws SQLException if the columnIndex is not valid;
1002
* if a database access error occurs or this method is
1003
* called on a closed result set
1004
* @since 1.2
1005
*/
1006
BigDecimal getBigDecimal(int columnIndex) throws SQLException;
1007
1008
/**
1009
* Retrieves the value of the designated column in the current row
1010
* of this {@code ResultSet} object as a
1011
* {@code java.math.BigDecimal} with full precision.
1012
*
1013
* @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 column
1014
* @return the column value (full precision);
1015
* if the value is SQL {@code NULL}, the value returned is
1016
* {@code null} in the Java programming language.
1017
* @throws SQLException if the columnLabel is not valid;
1018
* if a database access error occurs or this method is
1019
* called on a closed result set
1020
* @since 1.2
1021
*
1022
*/
1023
BigDecimal getBigDecimal(String columnLabel) throws SQLException;
1024
1025
//---------------------------------------------------------------------
1026
// Traversal/Positioning
1027
//---------------------------------------------------------------------
1028
1029
/**
1030
* Retrieves whether the cursor is before the first row in
1031
* this {@code ResultSet} object.
1032
* <p>
1033
* <strong>Note:</strong>Support for the {@code isBeforeFirst} method
1034
* is optional for {@code ResultSet}s with a result
1035
* set type of {@code TYPE_FORWARD_ONLY}
1036
*
1037
* @return {@code true} if the cursor is before the first row;
1038
* {@code false} if the cursor is at any other position or the
1039
* result set contains no rows
1040
* @throws SQLException if a database access error occurs or this method is
1041
* called on a closed result set
1042
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1043
* this method
1044
* @since 1.2
1045
*/
1046
boolean isBeforeFirst() throws SQLException;
1047
1048
/**
1049
* Retrieves whether the cursor is after the last row in
1050
* this {@code ResultSet} object.
1051
* <p>
1052
* <strong>Note:</strong>Support for the {@code isAfterLast} method
1053
* is optional for {@code ResultSet}s with a result
1054
* set type of {@code TYPE_FORWARD_ONLY}
1055
*
1056
* @return {@code true} if the cursor is after the last row;
1057
* {@code false} if the cursor is at any other position or the
1058
* result set contains no rows
1059
* @throws SQLException if a database access error occurs or this method is
1060
* called on a closed result set
1061
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1062
* this method
1063
* @since 1.2
1064
*/
1065
boolean isAfterLast() throws SQLException;
1066
1067
/**
1068
* Retrieves whether the cursor is on the first row of
1069
* this {@code ResultSet} object.
1070
* <p>
1071
* <strong>Note:</strong>Support for the {@code isFirst} method
1072
* is optional for {@code ResultSet}s with a result
1073
* set type of {@code TYPE_FORWARD_ONLY}
1074
*
1075
* @return {@code true} if the cursor is on the first row;
1076
* {@code false} otherwise
1077
* @throws SQLException if a database access error occurs or this method is
1078
* called on a closed result set
1079
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1080
* this method
1081
* @since 1.2
1082
*/
1083
boolean isFirst() throws SQLException;
1084
1085
/**
1086
* Retrieves whether the cursor is on the last row of
1087
* this {@code ResultSet} object.
1088
* <strong>Note:</strong> Calling the method {@code isLast} may be expensive
1089
* because the JDBC driver
1090
* might need to fetch ahead one row in order to determine
1091
* whether the current row is the last row in the result set.
1092
* <p>
1093
* <strong>Note:</strong> Support for the {@code isLast} method
1094
* is optional for {@code ResultSet}s with a result
1095
* set type of {@code TYPE_FORWARD_ONLY}
1096
* @return {@code true} if the cursor is on the last row;
1097
* {@code false} otherwise
1098
* @throws SQLException if a database access error occurs or this method is
1099
* called on a closed result set
1100
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1101
* this method
1102
* @since 1.2
1103
*/
1104
boolean isLast() throws SQLException;
1105
1106
/**
1107
* Moves the cursor to the front of
1108
* this {@code ResultSet} object, just before the
1109
* first row. This method has no effect if the result set contains no rows.
1110
*
1111
* @throws SQLException if a database access error
1112
* occurs; this method is called on a closed result set or the
1113
* result set type is {@code TYPE_FORWARD_ONLY}
1114
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1115
* this method
1116
* @since 1.2
1117
*/
1118
void beforeFirst() throws SQLException;
1119
1120
/**
1121
* Moves the cursor to the end of
1122
* this {@code ResultSet} object, just after the
1123
* last row. This method has no effect if the result set contains no rows.
1124
* @throws SQLException if a database access error
1125
* occurs; this method is called on a closed result set
1126
* or the result set type is {@code TYPE_FORWARD_ONLY}
1127
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1128
* this method
1129
* @since 1.2
1130
*/
1131
void afterLast() throws SQLException;
1132
1133
/**
1134
* Moves the cursor to the first row in
1135
* this {@code ResultSet} object.
1136
*
1137
* @return {@code true} if the cursor is on a valid row;
1138
* {@code false} if there are no rows in the result set
1139
* @throws SQLException if a database access error
1140
* occurs; this method is called on a closed result set
1141
* or the result set type is {@code TYPE_FORWARD_ONLY}
1142
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1143
* this method
1144
* @since 1.2
1145
*/
1146
boolean first() throws SQLException;
1147
1148
/**
1149
* Moves the cursor to the last row in
1150
* this {@code ResultSet} object.
1151
*
1152
* @return {@code true} if the cursor is on a valid row;
1153
* {@code false} if there are no rows in the result set
1154
* @throws SQLException if a database access error
1155
* occurs; this method is called on a closed result set
1156
* or the result set type is {@code TYPE_FORWARD_ONLY}
1157
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1158
* this method
1159
* @since 1.2
1160
*/
1161
boolean last() throws SQLException;
1162
1163
/**
1164
* Retrieves the current row number. The first row is number 1, the
1165
* second number 2, and so on.
1166
* <p>
1167
* <strong>Note:</strong>Support for the {@code getRow} method
1168
* is optional for {@code ResultSet}s with a result
1169
* set type of {@code TYPE_FORWARD_ONLY}
1170
*
1171
* @return the current row number; {@code 0} if there is no current row
1172
* @throws SQLException if a database access error occurs
1173
* or this method is called on a closed result set
1174
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1175
* this method
1176
* @since 1.2
1177
*/
1178
int getRow() throws SQLException;
1179
1180
/**
1181
* Moves the cursor to the given row number in
1182
* this {@code ResultSet} object.
1183
*
1184
* <p>If the row number is positive, the cursor moves to
1185
* the given row number with respect to the
1186
* beginning of the result set. The first row is row 1, the second
1187
* is row 2, and so on.
1188
*
1189
* <p>If the given row number is negative, the cursor moves to
1190
* an absolute row position with respect to
1191
* the end of the result set. For example, calling the method
1192
* {@code absolute(-1)} positions the
1193
* cursor on the last row; calling the method {@code absolute(-2)}
1194
* moves the cursor to the next-to-last row, and so on.
1195
*
1196
* <p>If the row number specified is zero, the cursor is moved to
1197
* before the first row.
1198
*
1199
* <p>An attempt to position the cursor beyond the first/last row in
1200
* the result set leaves the cursor before the first row or after
1201
* the last row.
1202
*
1203
* <p><B>Note:</B> Calling {@code absolute(1)} is the same
1204
* as calling {@code first()}. Calling {@code absolute(-1)}
1205
* is the same as calling {@code last()}.
1206
*
1207
* @param row the number of the row to which the cursor should move.
1208
* A value of zero indicates that the cursor will be positioned
1209
* before the first row; a positive number indicates the row number
1210
* counting from the beginning of the result set; a negative number
1211
* indicates the row number counting from the end of the result set
1212
* @return {@code true} if the cursor is moved to a position in this
1213
* {@code ResultSet} object;
1214
* {@code false} if the cursor is before the first row or after the
1215
* last row
1216
* @throws SQLException if a database access error
1217
* occurs; this method is called on a closed result set
1218
* or the result set type is {@code TYPE_FORWARD_ONLY}
1219
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1220
* this method
1221
* @since 1.2
1222
*/
1223
boolean absolute( int row ) throws SQLException;
1224
1225
/**
1226
* Moves the cursor a relative number of rows, either positive or negative.
1227
* Attempting to move beyond the first/last row in the
1228
* result set positions the cursor before/after the
1229
* the first/last row. Calling {@code relative(0)} is valid, but does
1230
* not change the cursor position.
1231
*
1232
* <p>Note: Calling the method {@code relative(1)}
1233
* is identical to calling the method {@code next()} and
1234
* calling the method {@code relative(-1)} is identical
1235
* to calling the method {@code previous()}.
1236
*
1237
* @param rows an {@code int} specifying the number of rows to
1238
* move from the current row; a positive number moves the cursor
1239
* forward; a negative number moves the cursor backward
1240
* @return {@code true} if the cursor is on a row;
1241
* {@code false} otherwise
1242
* @throws SQLException if a database access error occurs; this method
1243
* is called on a closed result set or the result set type is
1244
* {@code TYPE_FORWARD_ONLY}
1245
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1246
* this method
1247
* @since 1.2
1248
*/
1249
boolean relative( int rows ) throws SQLException;
1250
1251
/**
1252
* Moves the cursor to the previous row in this
1253
* {@code ResultSet} object.
1254
*<p>
1255
* When a call to the {@code previous} method returns {@code false},
1256
* the cursor is positioned before the first row. Any invocation of a
1257
* {@code ResultSet} method which requires a current row will result in a
1258
* {@code SQLException} being thrown.
1259
*<p>
1260
* If an input stream is open for the current row, a call to the method
1261
* {@code previous} will implicitly close it. A {@code ResultSet}
1262
* object's warning change is cleared when a new row is read.
1263
*
1264
* @return {@code true} if the cursor is now positioned on a valid row;
1265
* {@code false} if the cursor is positioned before the first row
1266
* @throws SQLException if a database access error
1267
* occurs; this method is called on a closed result set
1268
* or the result set type is {@code TYPE_FORWARD_ONLY}
1269
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1270
* this method
1271
* @since 1.2
1272
*/
1273
boolean previous() throws SQLException;
1274
1275
//---------------------------------------------------------------------
1276
// Properties
1277
//---------------------------------------------------------------------
1278
1279
/**
1280
* The constant indicating that the rows in a result set will be
1281
* processed in a forward direction; first-to-last.
1282
* This constant is used by the method {@code setFetchDirection}
1283
* as a hint to the driver, which the driver may ignore.
1284
* @since 1.2
1285
*/
1286
int FETCH_FORWARD = 1000;
1287
1288
/**
1289
* The constant indicating that the rows in a result set will be
1290
* processed in a reverse direction; last-to-first.
1291
* This constant is used by the method {@code setFetchDirection}
1292
* as a hint to the driver, which the driver may ignore.
1293
* @since 1.2
1294
*/
1295
int FETCH_REVERSE = 1001;
1296
1297
/**
1298
* The constant indicating that the order in which rows in a
1299
* result set will be processed is unknown.
1300
* This constant is used by the method {@code setFetchDirection}
1301
* as a hint to the driver, which the driver may ignore.
1302
*/
1303
int FETCH_UNKNOWN = 1002;
1304
1305
/**
1306
* Gives a hint as to the direction in which the rows in this
1307
* {@code ResultSet} object will be processed.
1308
* The initial value is determined by the
1309
* {@code Statement} object
1310
* that produced this {@code ResultSet} object.
1311
* The fetch direction may be changed at any time.
1312
*
1313
* @param direction an {@code int} specifying the suggested
1314
* fetch direction; one of {@code ResultSet.FETCH_FORWARD},
1315
* {@code ResultSet.FETCH_REVERSE}, or
1316
* {@code ResultSet.FETCH_UNKNOWN}
1317
* @throws SQLException if a database access error occurs; this
1318
* method is called on a closed result set or
1319
* the result set type is {@code TYPE_FORWARD_ONLY} and the fetch
1320
* direction is not {@code FETCH_FORWARD}
1321
* @since 1.2
1322
* @see Statement#setFetchDirection
1323
* @see #getFetchDirection
1324
*/
1325
void setFetchDirection(int direction) throws SQLException;
1326
1327
/**
1328
* Retrieves the fetch direction for this
1329
* {@code ResultSet} object.
1330
*
1331
* @return the current fetch direction for this {@code ResultSet} object
1332
* @throws SQLException if a database access error occurs
1333
* or this method is called on a closed result set
1334
* @since 1.2
1335
* @see #setFetchDirection
1336
*/
1337
int getFetchDirection() throws SQLException;
1338
1339
/**
1340
* Gives the JDBC driver a hint as to the number of rows that should
1341
* be fetched from the database when more rows are needed for this
1342
* {@code ResultSet} object.
1343
* If the fetch size specified is zero, the JDBC driver
1344
* ignores the value and is free to make its own best guess as to what
1345
* the fetch size should be. The default value is set by the
1346
* {@code Statement} object
1347
* that created the result set. The fetch size may be changed at any time.
1348
*
1349
* @param rows the number of rows to fetch
1350
* @throws SQLException if a database access error occurs; this method
1351
* is called on a closed result set or the
1352
* condition {@code rows >= 0} is not satisfied
1353
* @since 1.2
1354
* @see #getFetchSize
1355
*/
1356
void setFetchSize(int rows) throws SQLException;
1357
1358
/**
1359
* Retrieves the fetch size for this
1360
* {@code ResultSet} object.
1361
*
1362
* @return the current fetch size for this {@code ResultSet} object
1363
* @throws SQLException if a database access error occurs
1364
* or this method is called on a closed result set
1365
* @since 1.2
1366
* @see #setFetchSize
1367
*/
1368
int getFetchSize() throws SQLException;
1369
1370
/**
1371
* The constant indicating the type for a {@code ResultSet} object
1372
* whose cursor may move only forward.
1373
* @since 1.2
1374
*/
1375
int TYPE_FORWARD_ONLY = 1003;
1376
1377
/**
1378
* The constant indicating the type for a {@code ResultSet} object
1379
* that is scrollable but generally not sensitive to changes to the data
1380
* that underlies the {@code ResultSet}.
1381
* @since 1.2
1382
*/
1383
int TYPE_SCROLL_INSENSITIVE = 1004;
1384
1385
/**
1386
* The constant indicating the type for a {@code ResultSet} object
1387
* that is scrollable and generally sensitive to changes to the data
1388
* that underlies the {@code ResultSet}.
1389
* @since 1.2
1390
*/
1391
int TYPE_SCROLL_SENSITIVE = 1005;
1392
1393
/**
1394
* Retrieves the type of this {@code ResultSet} object.
1395
* The type is determined by the {@code Statement} object
1396
* that created the result set.
1397
*
1398
* @return {@code ResultSet.TYPE_FORWARD_ONLY},
1399
* {@code ResultSet.TYPE_SCROLL_INSENSITIVE},
1400
* or {@code ResultSet.TYPE_SCROLL_SENSITIVE}
1401
* @throws SQLException if a database access error occurs
1402
* or this method is called on a closed result set
1403
* @since 1.2
1404
*/
1405
int getType() throws SQLException;
1406
1407
/**
1408
* The constant indicating the concurrency mode for a
1409
* {@code ResultSet} object that may NOT be updated.
1410
* @since 1.2
1411
*/
1412
int CONCUR_READ_ONLY = 1007;
1413
1414
/**
1415
* The constant indicating the concurrency mode for a
1416
* {@code ResultSet} object that may be updated.
1417
* @since 1.2
1418
*/
1419
int CONCUR_UPDATABLE = 1008;
1420
1421
/**
1422
* Retrieves the concurrency mode of this {@code ResultSet} object.
1423
* The concurrency used is determined by the
1424
* {@code Statement} object that created the result set.
1425
*
1426
* @return the concurrency type, either
1427
* {@code ResultSet.CONCUR_READ_ONLY}
1428
* or {@code ResultSet.CONCUR_UPDATABLE}
1429
* @throws SQLException if a database access error occurs
1430
* or this method is called on a closed result set
1431
* @since 1.2
1432
*/
1433
int getConcurrency() throws SQLException;
1434
1435
//---------------------------------------------------------------------
1436
// Updates
1437
//---------------------------------------------------------------------
1438
1439
/**
1440
* Retrieves whether the current row has been updated. The value returned
1441
* depends on whether or not the result set can detect updates.
1442
* <p>
1443
* <strong>Note:</strong> Support for the {@code rowUpdated} method is optional with a result set
1444
* concurrency of {@code CONCUR_READ_ONLY}
1445
* @return {@code true} if the current row is detected to
1446
* have been visibly updated by the owner or another; {@code false} otherwise
1447
* @throws SQLException if a database access error occurs
1448
* or this method is called on a closed result set
1449
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1450
* this method
1451
* @see DatabaseMetaData#updatesAreDetected
1452
* @since 1.2
1453
*/
1454
boolean rowUpdated() throws SQLException;
1455
1456
/**
1457
* Retrieves whether the current row has had an insertion.
1458
* The value returned depends on whether or not this
1459
* {@code ResultSet} object can detect visible inserts.
1460
* <p>
1461
* <strong>Note:</strong> Support for the {@code rowInserted} method is optional with a result set
1462
* concurrency of {@code CONCUR_READ_ONLY}
1463
* @return {@code true} if the current row is detected to
1464
* have been inserted; {@code false} otherwise
1465
* @throws SQLException if a database access error occurs
1466
* or this method is called on a closed result set
1467
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1468
* this method
1469
*
1470
* @see DatabaseMetaData#insertsAreDetected
1471
* @since 1.2
1472
*/
1473
boolean rowInserted() throws SQLException;
1474
1475
/**
1476
* Retrieves whether a row has been deleted. A deleted row may leave
1477
* a visible "hole" in a result set. This method can be used to
1478
* detect holes in a result set. The value returned depends on whether
1479
* or not this {@code ResultSet} object can detect deletions.
1480
* <p>
1481
* <strong>Note:</strong> Support for the {@code rowDeleted} method is optional with a result set
1482
* concurrency of {@code CONCUR_READ_ONLY}
1483
* @return {@code true} if the current row is detected to
1484
* have been deleted by the owner or another; {@code false} otherwise
1485
* @throws SQLException if a database access error occurs
1486
* or this method is called on a closed result set
1487
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1488
* this method
1489
*
1490
* @see DatabaseMetaData#deletesAreDetected
1491
* @since 1.2
1492
*/
1493
boolean rowDeleted() throws SQLException;
1494
1495
/**
1496
* Updates the designated column with a {@code null} value.
1497
*
1498
* The updater methods are used to update column values in the
1499
* current row or the insert row. The updater methods do not
1500
* update the underlying database; instead the {@code updateRow}
1501
* or {@code insertRow} methods are called to update the database.
1502
*
1503
* @param columnIndex the first column is 1, the second is 2, ...
1504
* @throws SQLException if the columnIndex is not valid;
1505
* if a database access error occurs;
1506
* the result set concurrency is {@code CONCUR_READ_ONLY}
1507
* or this method is called on a closed result set
1508
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1509
* this method
1510
* @since 1.2
1511
*/
1512
void updateNull(int columnIndex) throws SQLException;
1513
1514
/**
1515
* Updates the designated column with a {@code boolean} value.
1516
* The updater methods are used to update column values in the
1517
* current row or the insert row. The updater methods do not
1518
* update the underlying database; instead the {@code updateRow} or
1519
* {@code insertRow} methods are called to update the database.
1520
*
1521
* @param columnIndex the first column is 1, the second is 2, ...
1522
* @param x the new column value
1523
* @throws SQLException if the columnIndex is not valid;
1524
* if a database access error occurs;
1525
* the result set concurrency is {@code CONCUR_READ_ONLY}
1526
* or this method is called on a closed result set
1527
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1528
* this method
1529
* @since 1.2
1530
*/
1531
void updateBoolean(int columnIndex, boolean x) throws SQLException;
1532
1533
/**
1534
* Updates the designated column with a {@code byte} value.
1535
* The updater methods are used to update column values in the
1536
* current row or the insert row. The updater methods do not
1537
* update the underlying database; instead the {@code updateRow} or
1538
* {@code insertRow} methods are called to update the database.
1539
*
1540
*
1541
* @param columnIndex the first column is 1, the second is 2, ...
1542
* @param x the new column value
1543
* @throws SQLException if the columnIndex is not valid;
1544
* if a database access error occurs;
1545
* the result set concurrency is {@code CONCUR_READ_ONLY}
1546
* or this method is called on a closed result set
1547
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1548
* this method
1549
* @since 1.2
1550
*/
1551
void updateByte(int columnIndex, byte x) throws SQLException;
1552
1553
/**
1554
* Updates the designated column with a {@code short} value.
1555
* The updater methods are used to update column values in the
1556
* current row or the insert row. The updater methods do not
1557
* update the underlying database; instead the {@code updateRow} or
1558
* {@code insertRow} methods are called to update the database.
1559
*
1560
* @param columnIndex the first column is 1, the second is 2, ...
1561
* @param x the new column value
1562
* @throws SQLException if the columnIndex is not valid;
1563
* if a database access error occurs;
1564
* the result set concurrency is {@code CONCUR_READ_ONLY}
1565
* or this method is called on a closed result set
1566
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1567
* this method
1568
* @since 1.2
1569
*/
1570
void updateShort(int columnIndex, short x) throws SQLException;
1571
1572
/**
1573
* Updates the designated column with an {@code int} value.
1574
* The updater methods are used to update column values in the
1575
* current row or the insert row. The updater methods do not
1576
* update the underlying database; instead the {@code updateRow} or
1577
* {@code insertRow} methods are called to update the database.
1578
*
1579
* @param columnIndex the first column is 1, the second is 2, ...
1580
* @param x the new column value
1581
* @throws SQLException if the columnIndex is not valid;
1582
* if a database access error occurs;
1583
* the result set concurrency is {@code CONCUR_READ_ONLY}
1584
* or this method is called on a closed result set
1585
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1586
* this method
1587
* @since 1.2
1588
*/
1589
void updateInt(int columnIndex, int x) throws SQLException;
1590
1591
/**
1592
* Updates the designated column with a {@code long} value.
1593
* The updater methods are used to update column values in the
1594
* current row or the insert row. The updater methods do not
1595
* update the underlying database; instead the {@code updateRow} or
1596
* {@code insertRow} methods are called to update the database.
1597
*
1598
* @param columnIndex the first column is 1, the second is 2, ...
1599
* @param x the new column value
1600
* @throws SQLException if the columnIndex is not valid;
1601
* if a database access error occurs;
1602
* the result set concurrency is {@code CONCUR_READ_ONLY}
1603
* or this method is called on a closed result set
1604
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1605
* this method
1606
* @since 1.2
1607
*/
1608
void updateLong(int columnIndex, long x) throws SQLException;
1609
1610
/**
1611
* Updates the designated column with a {@code float} value.
1612
* The updater methods are used to update column values in the
1613
* current row or the insert row. The updater methods do not
1614
* update the underlying database; instead the {@code updateRow} or
1615
* {@code insertRow} methods are called to update the database.
1616
*
1617
* @param columnIndex the first column is 1, the second is 2, ...
1618
* @param x the new column value
1619
* @throws SQLException if the columnIndex is not valid;
1620
* if a database access error occurs;
1621
* the result set concurrency is {@code CONCUR_READ_ONLY}
1622
* or this method is called on a closed result set
1623
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1624
* this method
1625
* @since 1.2
1626
*/
1627
void updateFloat(int columnIndex, float x) throws SQLException;
1628
1629
/**
1630
* Updates the designated column with a {@code double} value.
1631
* The updater methods are used to update column values in the
1632
* current row or the insert row. The updater methods do not
1633
* update the underlying database; instead the {@code updateRow} or
1634
* {@code insertRow} methods are called to update the database.
1635
*
1636
* @param columnIndex the first column is 1, the second is 2, ...
1637
* @param x the new column value
1638
* @throws SQLException if the columnIndex is not valid;
1639
* if a database access error occurs;
1640
* the result set concurrency is {@code CONCUR_READ_ONLY}
1641
* or this method is called on a closed result set
1642
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1643
* this method
1644
* @since 1.2
1645
*/
1646
void updateDouble(int columnIndex, double x) throws SQLException;
1647
1648
/**
1649
* Updates the designated column with a {@code java.math.BigDecimal}
1650
* value.
1651
* The updater methods are used to update column values in the
1652
* current row or the insert row. The updater methods do not
1653
* update the underlying database; instead the {@code updateRow} or
1654
* {@code insertRow} methods are called to update the database.
1655
*
1656
* @param columnIndex the first column is 1, the second is 2, ...
1657
* @param x the new column value
1658
* @throws SQLException if the columnIndex is not valid;
1659
* if a database access error occurs;
1660
* the result set concurrency is {@code CONCUR_READ_ONLY}
1661
* or this method is called on a closed result set
1662
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1663
* this method
1664
* @since 1.2
1665
*/
1666
void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException;
1667
1668
/**
1669
* Updates the designated column with a {@code String} value.
1670
* The updater methods are used to update column values in the
1671
* current row or the insert row. The updater methods do not
1672
* update the underlying database; instead the {@code updateRow} or
1673
* {@code insertRow} methods are called to update the database.
1674
*
1675
* @param columnIndex the first column is 1, the second is 2, ...
1676
* @param x the new column value
1677
* @throws SQLException if the columnIndex is not valid;
1678
* if a database access error occurs;
1679
* the result set concurrency is {@code CONCUR_READ_ONLY}
1680
* or this method is called on a closed result set
1681
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1682
* this method
1683
* @since 1.2
1684
*/
1685
void updateString(int columnIndex, String x) throws SQLException;
1686
1687
/**
1688
* Updates the designated column with a {@code byte} array value.
1689
* The updater methods are used to update column values in the
1690
* current row or the insert row. The updater methods do not
1691
* update the underlying database; instead the {@code updateRow} or
1692
* {@code insertRow} methods are called to update the database.
1693
*
1694
* @param columnIndex the first column is 1, the second is 2, ...
1695
* @param x the new column value
1696
* @throws SQLException if the columnIndex is not valid;
1697
* if a database access error occurs;
1698
* the result set concurrency is {@code CONCUR_READ_ONLY}
1699
* or this method is called on a closed result set
1700
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1701
* this method
1702
* @since 1.2
1703
*/
1704
void updateBytes(int columnIndex, byte x[]) throws SQLException;
1705
1706
/**
1707
* Updates the designated column with a {@code java.sql.Date} value.
1708
* The updater methods are used to update column values in the
1709
* current row or the insert row. The updater methods do not
1710
* update the underlying database; instead the {@code updateRow} or
1711
* {@code insertRow} methods are called to update the database.
1712
*
1713
* @param columnIndex the first column is 1, the second is 2, ...
1714
* @param x the new column value
1715
* @throws SQLException if the columnIndex is not valid;
1716
* if a database access error occurs;
1717
* the result set concurrency is {@code CONCUR_READ_ONLY}
1718
* or this method is called on a closed result set
1719
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1720
* this method
1721
* @since 1.2
1722
*/
1723
void updateDate(int columnIndex, java.sql.Date x) throws SQLException;
1724
1725
/**
1726
* Updates the designated column with a {@code java.sql.Time} value.
1727
* The updater methods are used to update column values in the
1728
* current row or the insert row. The updater methods do not
1729
* update the underlying database; instead the {@code updateRow} or
1730
* {@code insertRow} methods are called to update the database.
1731
*
1732
* @param columnIndex the first column is 1, the second is 2, ...
1733
* @param x the new column value
1734
* @throws SQLException if the columnIndex is not valid;
1735
* if a database access error occurs;
1736
* the result set concurrency is {@code CONCUR_READ_ONLY}
1737
* or this method is called on a closed result set
1738
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1739
* this method
1740
* @since 1.2
1741
*/
1742
void updateTime(int columnIndex, java.sql.Time x) throws SQLException;
1743
1744
/**
1745
* Updates the designated column with a {@code java.sql.Timestamp}
1746
* value.
1747
* The updater methods are used to update column values in the
1748
* current row or the insert row. The updater methods do not
1749
* update the underlying database; instead the {@code updateRow} or
1750
* {@code insertRow} methods are called to update the database.
1751
*
1752
* @param columnIndex the first column is 1, the second is 2, ...
1753
* @param x the new column value
1754
* @throws SQLException if the columnIndex is not valid;
1755
* if a database access error occurs;
1756
* the result set concurrency is {@code CONCUR_READ_ONLY}
1757
* or this method is called on a closed result set
1758
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1759
* this method
1760
* @since 1.2
1761
*/
1762
void updateTimestamp(int columnIndex, java.sql.Timestamp x)
1763
throws SQLException;
1764
1765
/**
1766
* Updates the designated column with an ascii stream value, which will have
1767
* the specified number of bytes.
1768
* The updater methods are used to update column values in the
1769
* current row or the insert row. The updater methods do not
1770
* update the underlying database; instead the {@code updateRow} or
1771
* {@code insertRow} methods are called to update the database.
1772
*
1773
* @param columnIndex the first column is 1, the second is 2, ...
1774
* @param x the new column value
1775
* @param length the length of the stream
1776
* @throws SQLException if the columnIndex is not valid;
1777
* if a database access error occurs;
1778
* the result set concurrency is {@code CONCUR_READ_ONLY}
1779
* or this method is called on a closed result set
1780
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1781
* this method
1782
* @since 1.2
1783
*/
1784
void updateAsciiStream(int columnIndex,
1785
java.io.InputStream x,
1786
int length) throws SQLException;
1787
1788
/**
1789
* Updates the designated column with a binary stream value, which will have
1790
* the specified number of bytes.
1791
* The updater methods are used to update column values in the
1792
* current row or the insert row. The updater methods do not
1793
* update the underlying database; instead the {@code updateRow} or
1794
* {@code insertRow} methods are called to update the database.
1795
*
1796
* @param columnIndex the first column is 1, the second is 2, ...
1797
* @param x the new column value
1798
* @param length the length of the stream
1799
* @throws SQLException if the columnIndex is not valid;
1800
* if a database access error occurs;
1801
* the result set concurrency is {@code CONCUR_READ_ONLY}
1802
* or this method is called on a closed result set
1803
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1804
* this method
1805
* @since 1.2
1806
*/
1807
void updateBinaryStream(int columnIndex,
1808
java.io.InputStream x,
1809
int length) throws SQLException;
1810
1811
/**
1812
* Updates the designated column with a character stream value, which will have
1813
* the specified number of bytes.
1814
* The updater methods are used to update column values in the
1815
* current row or the insert row. The updater methods do not
1816
* update the underlying database; instead the {@code updateRow} or
1817
* {@code insertRow} methods are called to update the database.
1818
*
1819
* @param columnIndex the first column is 1, the second is 2, ...
1820
* @param x the new column value
1821
* @param length the length of the stream
1822
* @throws SQLException if the columnIndex is not valid;
1823
* if a database access error occurs;
1824
* the result set concurrency is {@code CONCUR_READ_ONLY}
1825
* or this method is called on a closed result set
1826
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1827
* this method
1828
* @since 1.2
1829
*/
1830
void updateCharacterStream(int columnIndex,
1831
java.io.Reader x,
1832
int length) throws SQLException;
1833
1834
/**
1835
* Updates the designated column with an {@code Object} value.
1836
*
1837
* The updater methods are used to update column values in the
1838
* current row or the insert row. The updater methods do not
1839
* update the underlying database; instead the {@code updateRow} or
1840
* {@code insertRow} methods are called to update the database.
1841
*<p>
1842
* If the second argument is an {@code InputStream} then the stream must contain
1843
* the number of bytes specified by scaleOrLength. If the second argument is a
1844
* {@code Reader} then the reader must contain the number of characters specified
1845
* by scaleOrLength. If these conditions are not true the driver will generate a
1846
* {@code SQLException} when the statement is executed.
1847
*
1848
* @param columnIndex the first column is 1, the second is 2, ...
1849
* @param x the new column value
1850
* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,
1851
* this is the number of digits after the decimal point. For
1852
* Java Object types {@code InputStream} and {@code Reader},
1853
* this is the length
1854
* of the data in the stream or reader. For all other types,
1855
* this value will be ignored.
1856
* @throws SQLException if the columnIndex is not valid;
1857
* if a database access error occurs;
1858
* the result set concurrency is {@code CONCUR_READ_ONLY}
1859
* or this method is called on a closed result set
1860
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1861
* this method
1862
* @since 1.2
1863
*/
1864
void updateObject(int columnIndex, Object x, int scaleOrLength)
1865
throws SQLException;
1866
1867
/**
1868
* Updates the designated column with an {@code Object} value.
1869
*
1870
* The updater methods are used to update column values in the
1871
* current row or the insert row. The updater methods do not
1872
* update the underlying database; instead the {@code updateRow} or
1873
* {@code insertRow} methods are called to update the database.
1874
*
1875
* @param columnIndex the first column is 1, the second is 2, ...
1876
* @param x the new column value
1877
* @throws SQLException if the columnIndex is not valid;
1878
* if a database access error occurs;
1879
* the result set concurrency is {@code CONCUR_READ_ONLY}
1880
* or this method is called on a closed result set
1881
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1882
* this method
1883
* @since 1.2
1884
*/
1885
void updateObject(int columnIndex, Object x) throws SQLException;
1886
1887
/**
1888
* Updates the designated column with a {@code null} value.
1889
* The updater methods are used to update column values in the
1890
* current row or the insert row. The updater methods do not
1891
* update the underlying database; instead the {@code updateRow} or
1892
* {@code insertRow} methods are called to update the database.
1893
*
1894
* @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 column
1895
* @throws SQLException if the columnLabel is not valid;
1896
* if a database access error occurs;
1897
* the result set concurrency is {@code CONCUR_READ_ONLY}
1898
* or this method is called on a closed result set
1899
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1900
* this method
1901
* @since 1.2
1902
*/
1903
void updateNull(String columnLabel) throws SQLException;
1904
1905
/**
1906
* Updates the designated column with a {@code boolean} value.
1907
* The updater methods are used to update column values in the
1908
* current row or the insert row. The updater methods do not
1909
* update the underlying database; instead the {@code updateRow} or
1910
* {@code insertRow} methods are called to update the database.
1911
*
1912
* @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 column
1913
* @param x the new column value
1914
* @throws SQLException if the columnLabel is not valid;
1915
* if a database access error occurs;
1916
* the result set concurrency is {@code CONCUR_READ_ONLY}
1917
* or this method is called on a closed result set
1918
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1919
* this method
1920
* @since 1.2
1921
*/
1922
void updateBoolean(String columnLabel, boolean x) throws SQLException;
1923
1924
/**
1925
* Updates the designated column with a {@code byte} value.
1926
* The updater methods are used to update column values in the
1927
* current row or the insert row. The updater methods do not
1928
* update the underlying database; instead the {@code updateRow} or
1929
* {@code insertRow} methods are called to update the database.
1930
*
1931
* @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 column
1932
* @param x the new column value
1933
* @throws SQLException if the columnLabel is not valid;
1934
* if a database access error occurs;
1935
* the result set concurrency is {@code CONCUR_READ_ONLY}
1936
* or this method is called on a closed result set
1937
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1938
* this method
1939
* @since 1.2
1940
*/
1941
void updateByte(String columnLabel, byte x) throws SQLException;
1942
1943
/**
1944
* Updates the designated column with a {@code short} value.
1945
* The updater methods are used to update column values in the
1946
* current row or the insert row. The updater methods do not
1947
* update the underlying database; instead the {@code updateRow} or
1948
* {@code insertRow} methods are called to update the database.
1949
*
1950
* @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 column
1951
* @param x the new column value
1952
* @throws SQLException if the columnLabel is not valid;
1953
* if a database access error occurs;
1954
* the result set concurrency is {@code CONCUR_READ_ONLY}
1955
* or this method is called on a closed result set
1956
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1957
* this method
1958
* @since 1.2
1959
*/
1960
void updateShort(String columnLabel, short x) throws SQLException;
1961
1962
/**
1963
* Updates the designated column with an {@code int} value.
1964
* The updater methods are used to update column values in the
1965
* current row or the insert row. The updater methods do not
1966
* update the underlying database; instead the {@code updateRow} or
1967
* {@code insertRow} methods are called to update the database.
1968
*
1969
* @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 column
1970
* @param x the new column value
1971
* @throws SQLException if the columnLabel is not valid;
1972
* if a database access error occurs;
1973
* the result set concurrency is {@code CONCUR_READ_ONLY}
1974
* or this method is called on a closed result set
1975
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1976
* this method
1977
* @since 1.2
1978
*/
1979
void updateInt(String columnLabel, int x) throws SQLException;
1980
1981
/**
1982
* Updates the designated column with a {@code long} value.
1983
* The updater methods are used to update column values in the
1984
* current row or the insert row. The updater methods do not
1985
* update the underlying database; instead the {@code updateRow} or
1986
* {@code insertRow} methods are called to update the database.
1987
*
1988
* @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 column
1989
* @param x the new column value
1990
* @throws SQLException if the columnLabel is not valid;
1991
* if a database access error occurs;
1992
* the result set concurrency is {@code CONCUR_READ_ONLY}
1993
* or this method is called on a closed result set
1994
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
1995
* this method
1996
* @since 1.2
1997
*/
1998
void updateLong(String columnLabel, long x) throws SQLException;
1999
2000
/**
2001
* Updates the designated column with a {@code float} value.
2002
* The updater methods are used to update column values in the
2003
* current row or the insert row. The updater methods do not
2004
* update the underlying database; instead the {@code updateRow} or
2005
* {@code insertRow} methods are called to update the database.
2006
*
2007
* @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 column
2008
* @param x the new column value
2009
* @throws SQLException if the columnLabel is not valid;
2010
* if a database access error occurs;
2011
* the result set concurrency is {@code CONCUR_READ_ONLY}
2012
* or this method is called on a closed result set
2013
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2014
* this method
2015
* @since 1.2
2016
*/
2017
void updateFloat(String columnLabel, float x) throws SQLException;
2018
2019
/**
2020
* Updates the designated column with a {@code double} value.
2021
* The updater methods are used to update column values in the
2022
* current row or the insert row. The updater methods do not
2023
* update the underlying database; instead the {@code updateRow} or
2024
* {@code insertRow} methods are called to update the database.
2025
*
2026
* @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 column
2027
* @param x the new column value
2028
* @throws SQLException if the columnLabel is not valid;
2029
* if a database access error occurs;
2030
* the result set concurrency is {@code CONCUR_READ_ONLY}
2031
* or this method is called on a closed result set
2032
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2033
* this method
2034
* @since 1.2
2035
*/
2036
void updateDouble(String columnLabel, double x) throws SQLException;
2037
2038
/**
2039
* Updates the designated column with a {@code java.sql.BigDecimal}
2040
* value.
2041
* The updater methods are used to update column values in the
2042
* current row or the insert row. The updater methods do not
2043
* update the underlying database; instead the {@code updateRow} or
2044
* {@code insertRow} methods are called to update the database.
2045
*
2046
* @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 column
2047
* @param x the new column value
2048
* @throws SQLException if the columnLabel is not valid;
2049
* if a database access error occurs;
2050
* the result set concurrency is {@code CONCUR_READ_ONLY}
2051
* or this method is called on a closed result set
2052
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2053
* this method
2054
* @since 1.2
2055
*/
2056
void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException;
2057
2058
/**
2059
* Updates the designated column with a {@code String} value.
2060
* The updater methods are used to update column values in the
2061
* current row or the insert row. The updater methods do not
2062
* update the underlying database; instead the {@code updateRow} or
2063
* {@code insertRow} methods are called to update the database.
2064
*
2065
* @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 column
2066
* @param x the new column value
2067
* @throws SQLException if the columnLabel is not valid;
2068
* if a database access error occurs;
2069
* the result set concurrency is {@code CONCUR_READ_ONLY}
2070
* or this method is called on a closed result set
2071
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2072
* this method
2073
* @since 1.2
2074
*/
2075
void updateString(String columnLabel, String x) throws SQLException;
2076
2077
/**
2078
* Updates the designated column with a byte array value.
2079
*
2080
* The updater methods are used to update column values in the
2081
* current row or the insert row. The updater methods do not
2082
* update the underlying database; instead the {@code updateRow}
2083
* or {@code insertRow} methods are called to update the database.
2084
*
2085
* @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 column
2086
* @param x the new column value
2087
* @throws SQLException if the columnLabel is not valid;
2088
* if a database access error occurs;
2089
* the result set concurrency is {@code CONCUR_READ_ONLY}
2090
* or this method is called on a closed result set
2091
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2092
* this method
2093
* @since 1.2
2094
*/
2095
void updateBytes(String columnLabel, byte x[]) throws SQLException;
2096
2097
/**
2098
* Updates the designated column with a {@code java.sql.Date} value.
2099
* The updater methods are used to update column values in the
2100
* current row or the insert row. The updater methods do not
2101
* update the underlying database; instead the {@code updateRow} or
2102
* {@code insertRow} methods are called to update the database.
2103
*
2104
* @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 column
2105
* @param x the new column value
2106
* @throws SQLException if the columnLabel is not valid;
2107
* if a database access error occurs;
2108
* the result set concurrency is {@code CONCUR_READ_ONLY}
2109
* or this method is called on a closed result set
2110
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2111
* this method
2112
* @since 1.2
2113
*/
2114
void updateDate(String columnLabel, java.sql.Date x) throws SQLException;
2115
2116
/**
2117
* Updates the designated column with a {@code java.sql.Time} value.
2118
* The updater methods are used to update column values in the
2119
* current row or the insert row. The updater methods do not
2120
* update the underlying database; instead the {@code updateRow} or
2121
* {@code insertRow} methods are called to update the database.
2122
*
2123
* @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 column
2124
* @param x the new column value
2125
* @throws SQLException if the columnLabel is not valid;
2126
* if a database access error occurs;
2127
* the result set concurrency is {@code CONCUR_READ_ONLY}
2128
* or this method is called on a closed result set
2129
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2130
* this method
2131
* @since 1.2
2132
*/
2133
void updateTime(String columnLabel, java.sql.Time x) throws SQLException;
2134
2135
/**
2136
* Updates the designated column with a {@code java.sql.Timestamp}
2137
* value.
2138
* The updater methods are used to update column values in the
2139
* current row or the insert row. The updater methods do not
2140
* update the underlying database; instead the {@code updateRow} or
2141
* {@code insertRow} methods are called to update the database.
2142
*
2143
* @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 column
2144
* @param x the new column value
2145
* @throws SQLException if the columnLabel is not valid;
2146
* if a database access error occurs;
2147
* the result set concurrency is {@code CONCUR_READ_ONLY}
2148
* or this method is called on a closed result set
2149
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2150
* this method
2151
* @since 1.2
2152
*/
2153
void updateTimestamp(String columnLabel, java.sql.Timestamp x)
2154
throws SQLException;
2155
2156
/**
2157
* Updates the designated column with an ascii stream value, which will have
2158
* the specified number of bytes.
2159
* The updater methods are used to update column values in the
2160
* current row or the insert row. The updater methods do not
2161
* update the underlying database; instead the {@code updateRow} or
2162
* {@code insertRow} methods are called to update the database.
2163
*
2164
* @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 column
2165
* @param x the new column value
2166
* @param length the length of the stream
2167
* @throws SQLException if the columnLabel is not valid;
2168
* if a database access error occurs;
2169
* the result set concurrency is {@code CONCUR_READ_ONLY}
2170
* or this method is called on a closed result set
2171
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2172
* this method
2173
* @since 1.2
2174
*/
2175
void updateAsciiStream(String columnLabel,
2176
java.io.InputStream x,
2177
int length) throws SQLException;
2178
2179
/**
2180
* Updates the designated column with a binary stream value, which will have
2181
* the specified number of bytes.
2182
* The updater methods are used to update column values in the
2183
* current row or the insert row. The updater methods do not
2184
* update the underlying database; instead the {@code updateRow} or
2185
* {@code insertRow} methods are called to update the database.
2186
*
2187
* @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 column
2188
* @param x the new column value
2189
* @param length the length of the stream
2190
* @throws SQLException if the columnLabel is not valid;
2191
* if a database access error occurs;
2192
* the result set concurrency is {@code CONCUR_READ_ONLY}
2193
* or this method is called on a closed result set
2194
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2195
* this method
2196
* @since 1.2
2197
*/
2198
void updateBinaryStream(String columnLabel,
2199
java.io.InputStream x,
2200
int length) throws SQLException;
2201
2202
/**
2203
* Updates the designated column with a character stream value, which will have
2204
* the specified number of bytes.
2205
* The updater methods are used to update column values in the
2206
* current row or the insert row. The updater methods do not
2207
* update the underlying database; instead the {@code updateRow} or
2208
* {@code insertRow} methods are called to update the database.
2209
*
2210
* @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 column
2211
* @param reader the {@code java.io.Reader} object containing
2212
* the new column value
2213
* @param length the length of the stream
2214
* @throws SQLException if the columnLabel is not valid;
2215
* if a database access error occurs;
2216
* the result set concurrency is {@code CONCUR_READ_ONLY}
2217
* or this method is called on a closed result set
2218
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2219
* this method
2220
* @since 1.2
2221
*/
2222
void updateCharacterStream(String columnLabel,
2223
java.io.Reader reader,
2224
int length) throws SQLException;
2225
2226
/**
2227
* Updates the designated column with an {@code Object} value.
2228
*
2229
* The updater methods are used to update column values in the
2230
* current row or the insert row. The updater methods do not
2231
* update the underlying database; instead the {@code updateRow} or
2232
* {@code insertRow} methods are called to update the database.
2233
*<p>
2234
* If the second argument is an {@code InputStream} then the stream must contain
2235
* the number of bytes specified by scaleOrLength. If the second argument is a
2236
* {@code Reader} then the reader must contain the number of characters specified
2237
* by scaleOrLength. If these conditions are not true the driver will generate a
2238
* {@code SQLException} when the statement is executed.
2239
*
2240
* @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 column
2241
* @param x the new column value
2242
* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,
2243
* this is the number of digits after the decimal point. For
2244
* Java Object types {@code InputStream} and {@code Reader},
2245
* this is the length
2246
* of the data in the stream or reader. For all other types,
2247
* this value will be ignored.
2248
* @throws SQLException if the columnLabel is not valid;
2249
* if a database access error occurs;
2250
* the result set concurrency is {@code CONCUR_READ_ONLY}
2251
* or this method is called on a closed result set
2252
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2253
* this method
2254
* @since 1.2
2255
*/
2256
void updateObject(String columnLabel, Object x, int scaleOrLength)
2257
throws SQLException;
2258
2259
/**
2260
* Updates the designated column with an {@code Object} value.
2261
*
2262
* The updater methods are used to update column values in the
2263
* current row or the insert row. The updater methods do not
2264
* update the underlying database; instead the {@code updateRow} or
2265
* {@code insertRow} methods are called to update the database.
2266
*
2267
* @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 column
2268
* @param x the new column value
2269
* @throws SQLException if the columnLabel is not valid;
2270
* if a database access error occurs;
2271
* the result set concurrency is {@code CONCUR_READ_ONLY}
2272
* or this method is called on a closed result set
2273
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2274
* this method
2275
* @since 1.2
2276
*/
2277
void updateObject(String columnLabel, Object x) throws SQLException;
2278
2279
/**
2280
* Inserts the contents of the insert row into this
2281
* {@code ResultSet} object and into the database.
2282
* The cursor must be on the insert row when this method is called.
2283
*
2284
* @throws SQLException if a database access error occurs;
2285
* the result set concurrency is {@code CONCUR_READ_ONLY},
2286
* this method is called on a closed result set,
2287
* if this method is called when the cursor is not on the insert row,
2288
* or if not all of non-nullable columns in
2289
* the insert row have been given a non-null value
2290
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2291
* this method
2292
* @since 1.2
2293
*/
2294
void insertRow() throws SQLException;
2295
2296
/**
2297
* Updates the underlying database with the new contents of the
2298
* current row of this {@code ResultSet} object.
2299
* This method cannot be called when the cursor is on the insert row.
2300
*
2301
* @throws SQLException if a database access error occurs;
2302
* the result set concurrency is {@code CONCUR_READ_ONLY};
2303
* this method is called on a closed result set or
2304
* if this method is called when the cursor is on the insert row
2305
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2306
* this method
2307
* @since 1.2
2308
*/
2309
void updateRow() throws SQLException;
2310
2311
/**
2312
* Deletes the current row from this {@code ResultSet} object
2313
* and from the underlying database. This method cannot be called when
2314
* the cursor is on the insert row.
2315
*
2316
* @throws SQLException if a database access error occurs;
2317
* the result set concurrency is {@code CONCUR_READ_ONLY};
2318
* this method is called on a closed result set
2319
* or if this method is called when the cursor is on the insert row
2320
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2321
* this method
2322
* @since 1.2
2323
*/
2324
void deleteRow() throws SQLException;
2325
2326
/**
2327
* Refreshes the current row with its most recent value in
2328
* the database. This method cannot be called when
2329
* the cursor is on the insert row.
2330
*
2331
* <P>The {@code refreshRow} method provides a way for an
2332
* application to
2333
* explicitly tell the JDBC driver to refetch a row(s) from the
2334
* database. An application may want to call {@code refreshRow} when
2335
* caching or prefetching is being done by the JDBC driver to
2336
* fetch the latest value of a row from the database. The JDBC driver
2337
* may actually refresh multiple rows at once if the fetch size is
2338
* greater than one.
2339
*
2340
* <P> All values are refetched subject to the transaction isolation
2341
* level and cursor sensitivity. If {@code refreshRow} is called after
2342
* calling an updater method, but before calling
2343
* the method {@code updateRow}, then the
2344
* updates made to the row are lost. Calling the method
2345
* {@code refreshRow} frequently will likely slow performance.
2346
*
2347
* @throws SQLException if a database access error
2348
* occurs; this method is called on a closed result set;
2349
* the result set type is {@code TYPE_FORWARD_ONLY} or if this
2350
* method is called when the cursor is on the insert row
2351
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2352
* this method or this method is not supported for the specified result
2353
* set type and result set concurrency.
2354
* @since 1.2
2355
*/
2356
void refreshRow() throws SQLException;
2357
2358
/**
2359
* Cancels the updates made to the current row in this
2360
* {@code ResultSet} object.
2361
* This method may be called after calling an
2362
* updater method(s) and before calling
2363
* the method {@code updateRow} to roll back
2364
* the updates made to a row. If no updates have been made or
2365
* {@code updateRow} has already been called, this method has no
2366
* effect.
2367
*
2368
* @throws SQLException if a database access error
2369
* occurs; this method is called on a closed result set;
2370
* the result set concurrency is {@code CONCUR_READ_ONLY}
2371
* or if this method is called when the cursor is
2372
* on the insert row
2373
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2374
* this method
2375
* @since 1.2
2376
*/
2377
void cancelRowUpdates() throws SQLException;
2378
2379
/**
2380
* Moves the cursor to the insert row. The current cursor position is
2381
* remembered while the cursor is positioned on the insert row.
2382
*
2383
* The insert row is a special row associated with an updatable
2384
* result set. It is essentially a buffer where a new row may
2385
* be constructed by calling the updater methods prior to
2386
* inserting the row into the result set.
2387
*
2388
* Only the updater, getter,
2389
* and {@code insertRow} methods may be
2390
* called when the cursor is on the insert row. All of the columns in
2391
* a result set must be given a value each time this method is
2392
* called before calling {@code insertRow}.
2393
* An updater method must be called before a
2394
* getter method can be called on a column value.
2395
*
2396
* @throws SQLException if a database access error occurs; this
2397
* method is called on a closed result set
2398
* or the result set concurrency is {@code CONCUR_READ_ONLY}
2399
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2400
* this method
2401
* @since 1.2
2402
*/
2403
void moveToInsertRow() throws SQLException;
2404
2405
/**
2406
* Moves the cursor to the remembered cursor position, usually the
2407
* current row. This method has no effect if the cursor is not on
2408
* the insert row.
2409
*
2410
* @throws SQLException if a database access error occurs; this
2411
* method is called on a closed result set
2412
* or the result set concurrency is {@code CONCUR_READ_ONLY}
2413
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2414
* this method
2415
* @since 1.2
2416
*/
2417
void moveToCurrentRow() throws SQLException;
2418
2419
/**
2420
* Retrieves the {@code Statement} object that produced this
2421
* {@code ResultSet} object.
2422
* If the result set was generated some other way, such as by a
2423
* {@code DatabaseMetaData} method, this method may return
2424
* {@code null}.
2425
*
2426
* @return the {@code Statement} object that produced
2427
* this {@code ResultSet} object or {@code null}
2428
* if the result set was produced some other way
2429
* @throws SQLException if a database access error occurs
2430
* or this method is called on a closed result set
2431
* @since 1.2
2432
*/
2433
Statement getStatement() throws SQLException;
2434
2435
/**
2436
* Retrieves the value of the designated column in the current row
2437
* of this {@code ResultSet} object as an {@code Object}
2438
* in the Java programming language.
2439
* If the value is an SQL {@code NULL},
2440
* the driver returns a Java {@code null}.
2441
* This method uses the given {@code Map} object
2442
* for the custom mapping of the
2443
* SQL structured or distinct type that is being retrieved.
2444
*
2445
* @param columnIndex the first column is 1, the second is 2, ...
2446
* @param map a {@code java.util.Map} object that contains the mapping
2447
* from SQL type names to classes in the Java programming language
2448
* @return an {@code Object} in the Java programming language
2449
* representing the SQL value
2450
* @throws SQLException if the columnIndex is not valid;
2451
* if a database access error occurs
2452
* or this method is called on a closed result set
2453
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2454
* this method
2455
* @since 1.2
2456
*/
2457
Object getObject(int columnIndex, java.util.Map<String,Class<?>> map)
2458
throws SQLException;
2459
2460
/**
2461
* Retrieves the value of the designated column in the current row
2462
* of this {@code ResultSet} object as a {@code Ref} object
2463
* in the Java programming language.
2464
*
2465
* @param columnIndex the first column is 1, the second is 2, ...
2466
* @return a {@code Ref} object representing an SQL {@code REF}
2467
* value
2468
* @throws SQLException if the columnIndex is not valid;
2469
* if a database access error occurs
2470
* or this method is called on a closed result set
2471
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2472
* this method
2473
* @since 1.2
2474
*/
2475
Ref getRef(int columnIndex) throws SQLException;
2476
2477
/**
2478
* Retrieves the value of the designated column in the current row
2479
* of this {@code ResultSet} object as a {@code Blob} object
2480
* in the Java programming language.
2481
*
2482
* @param columnIndex the first column is 1, the second is 2, ...
2483
* @return a {@code Blob} object representing the SQL
2484
* {@code BLOB} value in the specified column
2485
* @throws SQLException if the columnIndex is not valid;
2486
* if a database access error occurs
2487
* or this method is called on a closed result set
2488
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2489
* this method
2490
* @since 1.2
2491
*/
2492
Blob getBlob(int columnIndex) throws SQLException;
2493
2494
/**
2495
* Retrieves the value of the designated column in the current row
2496
* of this {@code ResultSet} object as a {@code Clob} object
2497
* in the Java programming language.
2498
*
2499
* @param columnIndex the first column is 1, the second is 2, ...
2500
* @return a {@code Clob} object representing the SQL
2501
* {@code CLOB} value in the specified column
2502
* @throws SQLException if the columnIndex is not valid;
2503
* if a database access error occurs
2504
* or this method is called on a closed result set
2505
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2506
* this method
2507
* @since 1.2
2508
*/
2509
Clob getClob(int columnIndex) throws SQLException;
2510
2511
/**
2512
* Retrieves the value of the designated column in the current row
2513
* of this {@code ResultSet} object as an {@code Array} object
2514
* in the Java programming language.
2515
*
2516
* @param columnIndex the first column is 1, the second is 2, ...
2517
* @return an {@code Array} object representing the SQL
2518
* {@code ARRAY} value in the specified column
2519
* @throws SQLException if the columnIndex is not valid;
2520
* if a database access error occurs
2521
* or this method is called on a closed result set
2522
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2523
* this method
2524
* @since 1.2
2525
*/
2526
Array getArray(int columnIndex) throws SQLException;
2527
2528
/**
2529
* Retrieves the value of the designated column in the current row
2530
* of this {@code ResultSet} object as an {@code Object}
2531
* in the Java programming language.
2532
* If the value is an SQL {@code NULL},
2533
* the driver returns a Java {@code null}.
2534
* This method uses the specified {@code Map} object for
2535
* custom mapping if appropriate.
2536
*
2537
* @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 column
2538
* @param map a {@code java.util.Map} object that contains the mapping
2539
* from SQL type names to classes in the Java programming language
2540
* @return an {@code Object} representing the SQL value in the
2541
* specified column
2542
* @throws SQLException if the columnLabel is not valid;
2543
* if a database access error occurs
2544
* or this method is called on a closed result set
2545
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2546
* this method
2547
* @since 1.2
2548
*/
2549
Object getObject(String columnLabel, java.util.Map<String,Class<?>> map)
2550
throws SQLException;
2551
2552
/**
2553
* Retrieves the value of the designated column in the current row
2554
* of this {@code ResultSet} object as a {@code Ref} object
2555
* in the Java programming language.
2556
*
2557
* @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 column
2558
* @return a {@code Ref} object representing the SQL {@code REF}
2559
* value in the specified column
2560
* @throws SQLException if the columnLabel is not valid;
2561
* if a database access error occurs
2562
* or this method is called on a closed result set
2563
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2564
* this method
2565
* @since 1.2
2566
*/
2567
Ref getRef(String columnLabel) throws SQLException;
2568
2569
/**
2570
* Retrieves the value of the designated column in the current row
2571
* of this {@code ResultSet} object as a {@code Blob} object
2572
* in the Java programming language.
2573
*
2574
* @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 column
2575
* @return a {@code Blob} object representing the SQL {@code BLOB}
2576
* value in the specified column
2577
* @throws SQLException if the columnLabel is not valid;
2578
* if a database access error occurs
2579
* or this method is called on a closed result set
2580
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2581
* this method
2582
* @since 1.2
2583
*/
2584
Blob getBlob(String columnLabel) throws SQLException;
2585
2586
/**
2587
* Retrieves the value of the designated column in the current row
2588
* of this {@code ResultSet} object as a {@code Clob} object
2589
* in the Java programming language.
2590
*
2591
* @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 column
2592
* @return a {@code Clob} object representing the SQL {@code CLOB}
2593
* value in the specified column
2594
* @throws SQLException if the columnLabel is not valid;
2595
* if a database access error occurs
2596
* or this method is called on a closed result set
2597
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2598
* this method
2599
* @since 1.2
2600
*/
2601
Clob getClob(String columnLabel) throws SQLException;
2602
2603
/**
2604
* Retrieves the value of the designated column in the current row
2605
* of this {@code ResultSet} object as an {@code Array} object
2606
* in the Java programming language.
2607
*
2608
* @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 column
2609
* @return an {@code Array} object representing the SQL {@code ARRAY} value in
2610
* the specified column
2611
* @throws SQLException if the columnLabel is not valid;
2612
* if a database access error occurs
2613
* or this method is called on a closed result set
2614
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2615
* this method
2616
* @since 1.2
2617
*/
2618
Array getArray(String columnLabel) throws SQLException;
2619
2620
/**
2621
* Retrieves the value of the designated column in the current row
2622
* of this {@code ResultSet} object as a {@code java.sql.Date} object
2623
* in the Java programming language.
2624
* This method uses the given calendar to construct an appropriate millisecond
2625
* value for the date if the underlying database does not store
2626
* timezone information.
2627
*
2628
* @param columnIndex the first column is 1, the second is 2, ...
2629
* @param cal the {@code java.util.Calendar} object
2630
* to use in constructing the date
2631
* @return the column value as a {@code java.sql.Date} object;
2632
* if the value is SQL {@code NULL},
2633
* the value returned is {@code null} in the Java programming language
2634
* @throws SQLException if the columnIndex is not valid;
2635
* if a database access error occurs
2636
* or this method is called on a closed result set
2637
* @since 1.2
2638
*/
2639
java.sql.Date getDate(int columnIndex, Calendar cal) throws SQLException;
2640
2641
/**
2642
* Retrieves the value of the designated column in the current row
2643
* of this {@code ResultSet} object as a {@code java.sql.Date} object
2644
* in the Java programming language.
2645
* This method uses the given calendar to construct an appropriate millisecond
2646
* value for the date if the underlying database does not store
2647
* timezone information.
2648
*
2649
* @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 column
2650
* @param cal the {@code java.util.Calendar} object
2651
* to use in constructing the date
2652
* @return the column value as a {@code java.sql.Date} object;
2653
* if the value is SQL {@code NULL},
2654
* the value returned is {@code null} in the Java programming language
2655
* @throws SQLException if the columnLabel is not valid;
2656
* if a database access error occurs
2657
* or this method is called on a closed result set
2658
* @since 1.2
2659
*/
2660
java.sql.Date getDate(String columnLabel, Calendar cal) throws SQLException;
2661
2662
/**
2663
* Retrieves the value of the designated column in the current row
2664
* of this {@code ResultSet} object as a {@code java.sql.Time} object
2665
* in the Java programming language.
2666
* This method uses the given calendar to construct an appropriate millisecond
2667
* value for the time if the underlying database does not store
2668
* timezone information.
2669
*
2670
* @param columnIndex the first column is 1, the second is 2, ...
2671
* @param cal the {@code java.util.Calendar} object
2672
* to use in constructing the time
2673
* @return the column value as a {@code java.sql.Time} object;
2674
* if the value is SQL {@code NULL},
2675
* the value returned is {@code null} in the Java programming language
2676
* @throws SQLException if the columnIndex is not valid;
2677
* if a database access error occurs
2678
* or this method is called on a closed result set
2679
* @since 1.2
2680
*/
2681
java.sql.Time getTime(int columnIndex, Calendar cal) throws SQLException;
2682
2683
/**
2684
* Retrieves the value of the designated column in the current row
2685
* of this {@code ResultSet} object as a {@code java.sql.Time} object
2686
* in the Java programming language.
2687
* This method uses the given calendar to construct an appropriate millisecond
2688
* value for the time if the underlying database does not store
2689
* timezone information.
2690
*
2691
* @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 column
2692
* @param cal the {@code java.util.Calendar} object
2693
* to use in constructing the time
2694
* @return the column value as a {@code java.sql.Time} object;
2695
* if the value is SQL {@code NULL},
2696
* the value returned is {@code null} in the Java programming language
2697
* @throws SQLException if the columnLabel is not valid;
2698
* if a database access error occurs
2699
* or this method is called on a closed result set
2700
* @since 1.2
2701
*/
2702
java.sql.Time getTime(String columnLabel, Calendar cal) throws SQLException;
2703
2704
/**
2705
* Retrieves the value of the designated column in the current row
2706
* of this {@code ResultSet} object as a {@code java.sql.Timestamp} object
2707
* in the Java programming language.
2708
* This method uses the given calendar to construct an appropriate millisecond
2709
* value for the timestamp if the underlying database does not store
2710
* timezone information.
2711
*
2712
* @param columnIndex the first column is 1, the second is 2, ...
2713
* @param cal the {@code java.util.Calendar} object
2714
* to use in constructing the timestamp
2715
* @return the column value as a {@code java.sql.Timestamp} object;
2716
* if the value is SQL {@code NULL},
2717
* the value returned is {@code null} in the Java programming language
2718
* @throws SQLException if the columnIndex is not valid;
2719
* if a database access error occurs
2720
* or this method is called on a closed result set
2721
* @since 1.2
2722
*/
2723
java.sql.Timestamp getTimestamp(int columnIndex, Calendar cal)
2724
throws SQLException;
2725
2726
/**
2727
* Retrieves the value of the designated column in the current row
2728
* of this {@code ResultSet} object as a {@code java.sql.Timestamp} object
2729
* in the Java programming language.
2730
* This method uses the given calendar to construct an appropriate millisecond
2731
* value for the timestamp if the underlying database does not store
2732
* timezone information.
2733
*
2734
* @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 column
2735
* @param cal the {@code java.util.Calendar} object
2736
* to use in constructing the date
2737
* @return the column value as a {@code java.sql.Timestamp} object;
2738
* if the value is SQL {@code NULL},
2739
* the value returned is {@code null} in the Java programming language
2740
* @throws SQLException if the columnLabel is not valid or
2741
* if a database access error occurs
2742
* or this method is called on a closed result set
2743
* @since 1.2
2744
*/
2745
java.sql.Timestamp getTimestamp(String columnLabel, Calendar cal)
2746
throws SQLException;
2747
2748
//-------------------------- JDBC 3.0 ----------------------------------------
2749
2750
/**
2751
* The constant indicating that open {@code ResultSet} objects with this
2752
* holdability will remain open when the current transaction is committed.
2753
*
2754
* @since 1.4
2755
*/
2756
int HOLD_CURSORS_OVER_COMMIT = 1;
2757
2758
/**
2759
* The constant indicating that open {@code ResultSet} objects with this
2760
* holdability will be closed when the current transaction is committed.
2761
*
2762
* @since 1.4
2763
*/
2764
int CLOSE_CURSORS_AT_COMMIT = 2;
2765
2766
/**
2767
* Retrieves the value of the designated column in the current row
2768
* of this {@code ResultSet} object as a {@code java.net.URL}
2769
* object in the Java programming language.
2770
*
2771
* @param columnIndex the index of the column 1 is the first, 2 is the second,...
2772
* @return the column value as a {@code java.net.URL} object;
2773
* if the value is SQL {@code NULL},
2774
* the value returned is {@code null} in the Java programming language
2775
* @throws SQLException if the columnIndex is not valid;
2776
* if a database access error occurs; this method
2777
* is called on a closed result set or if a URL is malformed
2778
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2779
* this method
2780
* @since 1.4
2781
*/
2782
java.net.URL getURL(int columnIndex) throws SQLException;
2783
2784
/**
2785
* Retrieves the value of the designated column in the current row
2786
* of this {@code ResultSet} object as a {@code java.net.URL}
2787
* object in the Java programming language.
2788
*
2789
* @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 column
2790
* @return the column value as a {@code java.net.URL} object;
2791
* if the value is SQL {@code NULL},
2792
* the value returned is {@code null} in the Java programming language
2793
* @throws SQLException if the columnLabel is not valid;
2794
* if a database access error occurs; this method
2795
* is called on a closed result set or if a URL is malformed
2796
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2797
* this method
2798
* @since 1.4
2799
*/
2800
java.net.URL getURL(String columnLabel) throws SQLException;
2801
2802
/**
2803
* Updates the designated column with a {@code java.sql.Ref} value.
2804
* The updater methods are used to update column values in the
2805
* current row or the insert row. The updater methods do not
2806
* update the underlying database; instead the {@code updateRow} or
2807
* {@code insertRow} methods are called to update the database.
2808
*
2809
* @param columnIndex the first column is 1, the second is 2, ...
2810
* @param x the new column value
2811
* @throws SQLException if the columnIndex is not valid;
2812
* if a database access error occurs;
2813
* the result set concurrency is {@code CONCUR_READ_ONLY}
2814
* or this method is called on a closed result set
2815
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2816
* this method
2817
* @since 1.4
2818
*/
2819
void updateRef(int columnIndex, java.sql.Ref x) throws SQLException;
2820
2821
/**
2822
* Updates the designated column with a {@code java.sql.Ref} value.
2823
* The updater methods are used to update column values in the
2824
* current row or the insert row. The updater methods do not
2825
* update the underlying database; instead the {@code updateRow} or
2826
* {@code insertRow} methods are called to update the database.
2827
*
2828
* @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 column
2829
* @param x the new column value
2830
* @throws SQLException if the columnLabel is not valid;
2831
* if a database access error occurs;
2832
* the result set concurrency is {@code CONCUR_READ_ONLY}
2833
* or this method is called on a closed result set
2834
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2835
* this method
2836
* @since 1.4
2837
*/
2838
void updateRef(String columnLabel, java.sql.Ref x) throws SQLException;
2839
2840
/**
2841
* Updates the designated column with a {@code java.sql.Blob} value.
2842
* The updater methods are used to update column values in the
2843
* current row or the insert row. The updater methods do not
2844
* update the underlying database; instead the {@code updateRow} or
2845
* {@code insertRow} methods are called to update the database.
2846
*
2847
* @param columnIndex the first column is 1, the second is 2, ...
2848
* @param x the new column value
2849
* @throws SQLException if the columnIndex is not valid;
2850
* if a database access error occurs;
2851
* the result set concurrency is {@code CONCUR_READ_ONLY}
2852
* or this method is called on a closed result set
2853
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2854
* this method
2855
* @since 1.4
2856
*/
2857
void updateBlob(int columnIndex, java.sql.Blob x) throws SQLException;
2858
2859
/**
2860
* Updates the designated column with a {@code java.sql.Blob} value.
2861
* The updater methods are used to update column values in the
2862
* current row or the insert row. The updater methods do not
2863
* update the underlying database; instead the {@code updateRow} or
2864
* {@code insertRow} methods are called to update the database.
2865
*
2866
* @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 column
2867
* @param x the new column value
2868
* @throws SQLException if the columnLabel is not valid;
2869
* if a database access error occurs;
2870
* the result set concurrency is {@code CONCUR_READ_ONLY}
2871
* or this method is called on a closed result set
2872
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2873
* this method
2874
* @since 1.4
2875
*/
2876
void updateBlob(String columnLabel, java.sql.Blob x) throws SQLException;
2877
2878
/**
2879
* Updates the designated column with a {@code java.sql.Clob} value.
2880
* The updater methods are used to update column values in the
2881
* current row or the insert row. The updater methods do not
2882
* update the underlying database; instead the {@code updateRow} or
2883
* {@code insertRow} methods are called to update the database.
2884
*
2885
* @param columnIndex the first column is 1, the second is 2, ...
2886
* @param x the new column value
2887
* @throws SQLException if the columnIndex is not valid;
2888
* if a database access error occurs;
2889
* the result set concurrency is {@code CONCUR_READ_ONLY}
2890
* or this method is called on a closed result set
2891
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2892
* this method
2893
* @since 1.4
2894
*/
2895
void updateClob(int columnIndex, java.sql.Clob x) throws SQLException;
2896
2897
/**
2898
* Updates the designated column with a {@code java.sql.Clob} value.
2899
* The updater methods are used to update column values in the
2900
* current row or the insert row. The updater methods do not
2901
* update the underlying database; instead the {@code updateRow} or
2902
* {@code insertRow} methods are called to update the database.
2903
*
2904
* @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 column
2905
* @param x the new column value
2906
* @throws SQLException if the columnLabel is not valid;
2907
* if a database access error occurs;
2908
* the result set concurrency is {@code CONCUR_READ_ONLY}
2909
* or this method is called on a closed result set
2910
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2911
* this method
2912
* @since 1.4
2913
*/
2914
void updateClob(String columnLabel, java.sql.Clob x) throws SQLException;
2915
2916
/**
2917
* Updates the designated column with a {@code java.sql.Array} value.
2918
* The updater methods are used to update column values in the
2919
* current row or the insert row. The updater methods do not
2920
* update the underlying database; instead the {@code updateRow} or
2921
* {@code insertRow} methods are called to update the database.
2922
*
2923
* @param columnIndex the first column is 1, the second is 2, ...
2924
* @param x the new column value
2925
* @throws SQLException if the columnIndex is not valid;
2926
* if a database access error occurs;
2927
* the result set concurrency is {@code CONCUR_READ_ONLY}
2928
* or this method is called on a closed result set
2929
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2930
* this method
2931
* @since 1.4
2932
*/
2933
void updateArray(int columnIndex, java.sql.Array x) throws SQLException;
2934
2935
/**
2936
* Updates the designated column with a {@code java.sql.Array} value.
2937
* The updater methods are used to update column values in the
2938
* current row or the insert row. The updater methods do not
2939
* update the underlying database; instead the {@code updateRow} or
2940
* {@code insertRow} methods are called to update the database.
2941
*
2942
* @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 column
2943
* @param x the new column value
2944
* @throws SQLException if the columnLabel is not valid;
2945
* if a database access error occurs;
2946
* the result set concurrency is {@code CONCUR_READ_ONLY}
2947
* or this method is called on a closed result set
2948
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2949
* this method
2950
* @since 1.4
2951
*/
2952
void updateArray(String columnLabel, java.sql.Array x) throws SQLException;
2953
2954
//------------------------- JDBC 4.0 -----------------------------------
2955
2956
/**
2957
* Retrieves the value of the designated column in the current row of this
2958
* {@code ResultSet} object as a {@code java.sql.RowId} object in the Java
2959
* programming language.
2960
*
2961
* @param columnIndex the first column is 1, the second 2, ...
2962
* @return the column value; if the value is a SQL {@code NULL} the
2963
* value returned is {@code null}
2964
* @throws SQLException if the columnIndex is not valid;
2965
* if a database access error occurs
2966
* or this method is called on a closed result set
2967
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2968
* this method
2969
* @since 1.6
2970
*/
2971
RowId getRowId(int columnIndex) throws SQLException;
2972
2973
/**
2974
* Retrieves the value of the designated column in the current row of this
2975
* {@code ResultSet} object as a {@code java.sql.RowId} object in the Java
2976
* programming language.
2977
*
2978
* @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 column
2979
* @return the column value ; if the value is a SQL {@code NULL} the
2980
* value returned is {@code null}
2981
* @throws SQLException if the columnLabel is not valid;
2982
* if a database access error occurs
2983
* or this method is called on a closed result set
2984
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
2985
* this method
2986
* @since 1.6
2987
*/
2988
RowId getRowId(String columnLabel) throws SQLException;
2989
2990
/**
2991
* Updates the designated column with a {@code RowId} value. The updater
2992
* methods are used to update column values in the current row or the insert
2993
* row. The updater methods do not update the underlying database; instead
2994
* the {@code updateRow} or {@code insertRow} methods are called
2995
* to update the database.
2996
*
2997
* @param columnIndex the first column is 1, the second 2, ...
2998
* @param x the column value
2999
* @throws SQLException if the columnIndex is not valid;
3000
* if a database access error occurs;
3001
* the result set concurrency is {@code CONCUR_READ_ONLY}
3002
* or this method is called on a closed result set
3003
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3004
* this method
3005
* @since 1.6
3006
*/
3007
void updateRowId(int columnIndex, RowId x) throws SQLException;
3008
3009
/**
3010
* Updates the designated column with a {@code RowId} value. The updater
3011
* methods are used to update column values in the current row or the insert
3012
* row. The updater methods do not update the underlying database; instead
3013
* the {@code updateRow} or {@code insertRow} methods are called
3014
* to update the database.
3015
*
3016
* @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 column
3017
* @param x the column value
3018
* @throws SQLException if the columnLabel is not valid;
3019
* if a database access error occurs;
3020
* the result set concurrency is {@code CONCUR_READ_ONLY}
3021
* or this method is called on a closed result set
3022
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3023
* this method
3024
* @since 1.6
3025
*/
3026
void updateRowId(String columnLabel, RowId x) throws SQLException;
3027
3028
/**
3029
* Retrieves the holdability of this {@code ResultSet} object
3030
* @return either {@code ResultSet.HOLD_CURSORS_OVER_COMMIT} or {@code ResultSet.CLOSE_CURSORS_AT_COMMIT}
3031
* @throws SQLException if a database access error occurs
3032
* or this method is called on a closed result set
3033
* @since 1.6
3034
*/
3035
int getHoldability() throws SQLException;
3036
3037
/**
3038
* Retrieves whether this {@code ResultSet} object has been closed. A {@code ResultSet} is closed if the
3039
* method close has been called on it, or if it is automatically closed.
3040
*
3041
* @return true if this {@code ResultSet} object is closed; false if it is still open
3042
* @throws SQLException if a database access error occurs
3043
* @since 1.6
3044
*/
3045
boolean isClosed() throws SQLException;
3046
3047
/**
3048
* Updates the designated column with a {@code String} value.
3049
* It is intended for use when updating {@code NCHAR},{@code NVARCHAR}
3050
* and {@code LONGNVARCHAR} columns.
3051
* The updater methods are used to update column values in the
3052
* current row or the insert row. The updater methods do not
3053
* update the underlying database; instead the {@code updateRow} or
3054
* {@code insertRow} methods are called to update the database.
3055
*
3056
* @param columnIndex the first column is 1, the second 2, ...
3057
* @param nString the value for the column to be updated
3058
* @throws SQLException if the columnIndex is not valid;
3059
* if the driver does not support national
3060
* character sets; if the driver can detect that a data conversion
3061
* error could occur; this method is called on a closed result set;
3062
* the result set concurrency is {@code CONCUR_READ_ONLY}
3063
* or if a database access error occurs
3064
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3065
* this method
3066
* @since 1.6
3067
*/
3068
void updateNString(int columnIndex, String nString) throws SQLException;
3069
3070
/**
3071
* Updates the designated column with a {@code String} value.
3072
* It is intended for use when updating {@code NCHAR},{@code NVARCHAR}
3073
* and {@code LONGNVARCHAR} columns.
3074
* The updater methods are used to update column values in the
3075
* current row or the insert row. The updater methods do not
3076
* update the underlying database; instead the {@code updateRow} or
3077
* {@code insertRow} methods are called to update the database.
3078
*
3079
* @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 column
3080
* @param nString the value for the column to be updated
3081
* @throws SQLException if the columnLabel is not valid;
3082
* if the driver does not support national
3083
* character sets; if the driver can detect that a data conversion
3084
* error could occur; this method is called on a closed result set;
3085
* the result set concurrency is {@code CONCUR_READ_ONLY}
3086
* or if a database access error occurs
3087
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3088
* this method
3089
* @since 1.6
3090
*/
3091
void updateNString(String columnLabel, String nString) throws SQLException;
3092
3093
/**
3094
* Updates the designated column with a {@code java.sql.NClob} value.
3095
* The updater methods are used to update column values in the
3096
* current row or the insert row. The updater methods do not
3097
* update the underlying database; instead the {@code updateRow} or
3098
* {@code insertRow} methods are called to update the database.
3099
*
3100
* @param columnIndex the first column is 1, the second 2, ...
3101
* @param nClob the value for the column to be updated
3102
* @throws SQLException if the columnIndex is not valid;
3103
* if the driver does not support national
3104
* character sets; if the driver can detect that a data conversion
3105
* error could occur; this method is called on a closed result set;
3106
* if a database access error occurs or
3107
* the result set concurrency is {@code CONCUR_READ_ONLY}
3108
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3109
* this method
3110
* @since 1.6
3111
*/
3112
void updateNClob(int columnIndex, NClob nClob) throws SQLException;
3113
3114
/**
3115
* Updates the designated column with a {@code java.sql.NClob} value.
3116
* The updater methods are used to update column values in the
3117
* current row or the insert row. The updater methods do not
3118
* update the underlying database; instead the {@code updateRow} or
3119
* {@code insertRow} methods are called to update the database.
3120
*
3121
* @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 column
3122
* @param nClob the value for the column to be updated
3123
* @throws SQLException if the columnLabel is not valid;
3124
* if the driver does not support national
3125
* character sets; if the driver can detect that a data conversion
3126
* error could occur; this method is called on a closed result set;
3127
* if a database access error occurs or
3128
* the result set concurrency is {@code CONCUR_READ_ONLY}
3129
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3130
* this method
3131
* @since 1.6
3132
*/
3133
void updateNClob(String columnLabel, NClob nClob) throws SQLException;
3134
3135
/**
3136
* Retrieves the value of the designated column in the current row
3137
* of this {@code ResultSet} object as a {@code NClob} object
3138
* in the Java programming language.
3139
*
3140
* @param columnIndex the first column is 1, the second is 2, ...
3141
* @return a {@code NClob} object representing the SQL
3142
* {@code NCLOB} value in the specified column
3143
* @throws SQLException if the columnIndex is not valid;
3144
* if the driver does not support national
3145
* character sets; if the driver can detect that a data conversion
3146
* error could occur; this method is called on a closed result set
3147
* or if a database access error occurs
3148
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3149
* this method
3150
* @since 1.6
3151
*/
3152
NClob getNClob(int columnIndex) throws SQLException;
3153
3154
/**
3155
* Retrieves the value of the designated column in the current row
3156
* of this {@code ResultSet} object as a {@code NClob} object
3157
* in the Java programming language.
3158
*
3159
* @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 column
3160
* @return a {@code NClob} object representing the SQL {@code NCLOB}
3161
* value in the specified column
3162
* @throws SQLException if the columnLabel is not valid;
3163
* if the driver does not support national
3164
* character sets; if the driver can detect that a data conversion
3165
* error could occur; this method is called on a closed result set
3166
* or if a database access error occurs
3167
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3168
* this method
3169
* @since 1.6
3170
*/
3171
NClob getNClob(String columnLabel) throws SQLException;
3172
3173
/**
3174
* Retrieves the value of the designated column in the current row of
3175
* this {@code ResultSet} as a
3176
* {@code java.sql.SQLXML} object in the Java programming language.
3177
* @param columnIndex the first column is 1, the second is 2, ...
3178
* @return a {@code SQLXML} object that maps an {@code SQL XML} value
3179
* @throws SQLException if the columnIndex is not valid;
3180
* if a database access error occurs
3181
* or this method is called on a closed result set
3182
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3183
* this method
3184
* @since 1.6
3185
*/
3186
SQLXML getSQLXML(int columnIndex) throws SQLException;
3187
3188
/**
3189
* Retrieves the value of the designated column in the current row of
3190
* this {@code ResultSet} as a
3191
* {@code java.sql.SQLXML} object in the Java programming language.
3192
* @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 column
3193
* @return a {@code SQLXML} object that maps an {@code SQL XML} value
3194
* @throws SQLException if the columnLabel is not valid;
3195
* if a database access error occurs
3196
* or this method is called on a closed result set
3197
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3198
* this method
3199
* @since 1.6
3200
*/
3201
SQLXML getSQLXML(String columnLabel) throws SQLException;
3202
/**
3203
* Updates the designated column with a {@code java.sql.SQLXML} value.
3204
* The updater
3205
* methods are used to update column values in the current row or the insert
3206
* row. The updater methods do not update the underlying database; instead
3207
* the {@code updateRow} or {@code insertRow} methods are called
3208
* to update the database.
3209
*
3210
* @param columnIndex the first column is 1, the second 2, ...
3211
* @param xmlObject the value for the column to be updated
3212
* @throws SQLException if the columnIndex is not valid;
3213
* if a database access error occurs; this method
3214
* is called on a closed result set;
3215
* the {@code java.xml.transform.Result},
3216
* {@code Writer} or {@code OutputStream} has not been closed
3217
* for the {@code SQLXML} object;
3218
* if there is an error processing the XML value or
3219
* the result set concurrency is {@code CONCUR_READ_ONLY}. The {@code getCause} method
3220
* of the exception may provide a more detailed exception, for example, if the
3221
* stream does not contain valid XML.
3222
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3223
* this method
3224
* @since 1.6
3225
*/
3226
void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException;
3227
/**
3228
* Updates the designated column with a {@code java.sql.SQLXML} value.
3229
* The updater
3230
* methods are used to update column values in the current row or the insert
3231
* row. The updater methods do not update the underlying database; instead
3232
* the {@code updateRow} or {@code insertRow} methods are called
3233
* to update the database.
3234
*
3235
* @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 column
3236
* @param xmlObject the column value
3237
* @throws SQLException if the columnLabel is not valid;
3238
* if a database access error occurs; this method
3239
* is called on a closed result set;
3240
* the {@code java.xml.transform.Result},
3241
* {@code Writer} or {@code OutputStream} has not been closed
3242
* for the {@code SQLXML} object;
3243
* if there is an error processing the XML value or
3244
* the result set concurrency is {@code CONCUR_READ_ONLY}. The {@code getCause} method
3245
* of the exception may provide a more detailed exception, for example, if the
3246
* stream does not contain valid XML.
3247
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3248
* this method
3249
* @since 1.6
3250
*/
3251
void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException;
3252
3253
/**
3254
* Retrieves the value of the designated column in the current row
3255
* of this {@code ResultSet} object as
3256
* a {@code String} in the Java programming language.
3257
* It is intended for use when
3258
* accessing {@code NCHAR},{@code NVARCHAR}
3259
* and {@code LONGNVARCHAR} columns.
3260
*
3261
* @param columnIndex the first column is 1, the second is 2, ...
3262
* @return the column value; if the value is SQL {@code NULL}, the
3263
* value returned is {@code null}
3264
* @throws SQLException if the columnIndex is not valid;
3265
* if a database access error occurs
3266
* or this method is called on a closed result set
3267
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3268
* this method
3269
* @since 1.6
3270
*/
3271
String getNString(int columnIndex) throws SQLException;
3272
3273
3274
/**
3275
* Retrieves the value of the designated column in the current row
3276
* of this {@code ResultSet} object as
3277
* a {@code String} in the Java programming language.
3278
* It is intended for use when
3279
* accessing {@code NCHAR},{@code NVARCHAR}
3280
* and {@code LONGNVARCHAR} columns.
3281
*
3282
* @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 column
3283
* @return the column value; if the value is SQL {@code NULL}, the
3284
* value returned is {@code null}
3285
* @throws SQLException if the columnLabel is not valid;
3286
* if a database access error occurs
3287
* or this method is called on a closed result set
3288
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3289
* this method
3290
* @since 1.6
3291
*/
3292
String getNString(String columnLabel) throws SQLException;
3293
3294
3295
/**
3296
* Retrieves the value of the designated column in the current row
3297
* of this {@code ResultSet} object as a
3298
* {@code java.io.Reader} object.
3299
* It is intended for use when
3300
* accessing {@code NCHAR},{@code NVARCHAR}
3301
* and {@code LONGNVARCHAR} columns.
3302
*
3303
* @return a {@code java.io.Reader} object that contains the column
3304
* value; if the value is SQL {@code NULL}, the value returned is
3305
* {@code null} in the Java programming language.
3306
* @param columnIndex the first column is 1, the second is 2, ...
3307
* @throws SQLException if the columnIndex is not valid;
3308
* if a database access error occurs
3309
* or this method is called on a closed result set
3310
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3311
* this method
3312
* @since 1.6
3313
*/
3314
java.io.Reader getNCharacterStream(int columnIndex) throws SQLException;
3315
3316
/**
3317
* Retrieves the value of the designated column in the current row
3318
* of this {@code ResultSet} object as a
3319
* {@code java.io.Reader} object.
3320
* It is intended for use when
3321
* accessing {@code NCHAR},{@code NVARCHAR}
3322
* and {@code LONGNVARCHAR} columns.
3323
*
3324
* @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 column
3325
* @return a {@code java.io.Reader} object that contains the column
3326
* value; if the value is SQL {@code NULL}, the value returned is
3327
* {@code null} in the Java programming language
3328
* @throws SQLException if the columnLabel is not valid;
3329
* if a database access error occurs
3330
* or this method is called on a closed result set
3331
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3332
* this method
3333
* @since 1.6
3334
*/
3335
java.io.Reader getNCharacterStream(String columnLabel) throws SQLException;
3336
3337
/**
3338
* Updates the designated column with a character stream value, which will have
3339
* the specified number of bytes. The
3340
* driver does the necessary conversion from Java character format to
3341
* the national character set in the database.
3342
* It is intended for use when
3343
* updating {@code NCHAR},{@code NVARCHAR}
3344
* and {@code LONGNVARCHAR} columns.
3345
* <p>
3346
* The updater methods are used to update column values in the
3347
* current row or the insert row. The updater methods do not
3348
* update the underlying database; instead the {@code updateRow} or
3349
* {@code insertRow} methods are called to update the database.
3350
*
3351
* @param columnIndex the first column is 1, the second is 2, ...
3352
* @param x the new column value
3353
* @param length the length of the stream
3354
* @throws SQLException if the columnIndex is not valid;
3355
* if a database access error occurs;
3356
* the result set concurrency is {@code CONCUR_READ_ONLY} or this method is called on a closed result set
3357
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3358
* this method
3359
* @since 1.6
3360
*/
3361
void updateNCharacterStream(int columnIndex,
3362
java.io.Reader x,
3363
long length) throws SQLException;
3364
3365
/**
3366
* Updates the designated column with a character stream value, which will have
3367
* the specified number of bytes. The
3368
* driver does the necessary conversion from Java character format to
3369
* the national character set in the database.
3370
* It is intended for use when
3371
* updating {@code NCHAR},{@code NVARCHAR}
3372
* and {@code LONGNVARCHAR} columns.
3373
* <p>
3374
* The updater methods are used to update column values in the
3375
* current row or the insert row. The updater methods do not
3376
* update the underlying database; instead the {@code updateRow} or
3377
* {@code insertRow} methods are called to update the database.
3378
*
3379
* @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 column
3380
* @param reader the {@code java.io.Reader} object containing
3381
* the new column value
3382
* @param length the length of the stream
3383
* @throws SQLException if the columnLabel is not valid;
3384
* if a database access error occurs;
3385
* the result set concurrency is {@code CONCUR_READ_ONLY} or this method is called on a closed result set
3386
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3387
* this method
3388
* @since 1.6
3389
*/
3390
void updateNCharacterStream(String columnLabel,
3391
java.io.Reader reader,
3392
long length) throws SQLException;
3393
/**
3394
* Updates the designated column with an ascii stream value, which will have
3395
* the specified number of bytes.
3396
* <p>
3397
* The updater methods are used to update column values in the
3398
* current row or the insert row. The updater methods do not
3399
* update the underlying database; instead the {@code updateRow} or
3400
* {@code insertRow} methods are called to update the database.
3401
*
3402
* @param columnIndex the first column is 1, the second is 2, ...
3403
* @param x the new column value
3404
* @param length the length of the stream
3405
* @throws SQLException if the columnIndex is not valid;
3406
* if a database access error occurs;
3407
* the result set concurrency is {@code CONCUR_READ_ONLY}
3408
* or this method is called on a closed result set
3409
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3410
* this method
3411
* @since 1.6
3412
*/
3413
void updateAsciiStream(int columnIndex,
3414
java.io.InputStream x,
3415
long length) throws SQLException;
3416
3417
/**
3418
* Updates the designated column with a binary stream value, which will have
3419
* the specified number of bytes.
3420
* <p>
3421
* The updater methods are used to update column values in the
3422
* current row or the insert row. The updater methods do not
3423
* update the underlying database; instead the {@code updateRow} or
3424
* {@code insertRow} methods are called to update the database.
3425
*
3426
* @param columnIndex the first column is 1, the second is 2, ...
3427
* @param x the new column value
3428
* @param length the length of the stream
3429
* @throws SQLException if the columnIndex is not valid;
3430
* if a database access error occurs;
3431
* the result set concurrency is {@code CONCUR_READ_ONLY}
3432
* or this method is called on a closed result set
3433
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3434
* this method
3435
* @since 1.6
3436
*/
3437
void updateBinaryStream(int columnIndex,
3438
java.io.InputStream x,
3439
long length) throws SQLException;
3440
3441
/**
3442
* Updates the designated column with a character stream value, which will have
3443
* the specified number of bytes.
3444
* <p>
3445
* The updater methods are used to update column values in the
3446
* current row or the insert row. The updater methods do not
3447
* update the underlying database; instead the {@code updateRow} or
3448
* {@code insertRow} methods are called to update the database.
3449
*
3450
* @param columnIndex the first column is 1, the second is 2, ...
3451
* @param x the new column value
3452
* @param length the length of the stream
3453
* @throws SQLException if the columnIndex is not valid;
3454
* if a database access error occurs;
3455
* the result set concurrency is {@code CONCUR_READ_ONLY}
3456
* or this method is called on a closed result set
3457
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3458
* this method
3459
* @since 1.6
3460
*/
3461
void updateCharacterStream(int columnIndex,
3462
java.io.Reader x,
3463
long length) throws SQLException;
3464
/**
3465
* Updates the designated column with an ascii stream value, which will have
3466
* the specified number of bytes.
3467
* <p>
3468
* The updater methods are used to update column values in the
3469
* current row or the insert row. The updater methods do not
3470
* update the underlying database; instead the {@code updateRow} or
3471
* {@code insertRow} methods are called to update the database.
3472
*
3473
* @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 column
3474
* @param x the new column value
3475
* @param length the length of the stream
3476
* @throws SQLException if the columnLabel is not valid;
3477
* if a database access error occurs;
3478
* the result set concurrency is {@code CONCUR_READ_ONLY}
3479
* or this method is called on a closed result set
3480
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3481
* this method
3482
* @since 1.6
3483
*/
3484
void updateAsciiStream(String columnLabel,
3485
java.io.InputStream x,
3486
long length) throws SQLException;
3487
3488
/**
3489
* Updates the designated column with a binary stream value, which will have
3490
* the specified number of bytes.
3491
* <p>
3492
* The updater methods are used to update column values in the
3493
* current row or the insert row. The updater methods do not
3494
* update the underlying database; instead the {@code updateRow} or
3495
* {@code insertRow} methods are called to update the database.
3496
*
3497
* @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 column
3498
* @param x the new column value
3499
* @param length the length of the stream
3500
* @throws SQLException if the columnLabel is not valid;
3501
* if a database access error occurs;
3502
* the result set concurrency is {@code CONCUR_READ_ONLY}
3503
* or this method is called on a closed result set
3504
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3505
* this method
3506
* @since 1.6
3507
*/
3508
void updateBinaryStream(String columnLabel,
3509
java.io.InputStream x,
3510
long length) throws SQLException;
3511
3512
/**
3513
* Updates the designated column with a character stream value, which will have
3514
* the specified number of bytes.
3515
* <p>
3516
* The updater methods are used to update column values in the
3517
* current row or the insert row. The updater methods do not
3518
* update the underlying database; instead the {@code updateRow} or
3519
* {@code insertRow} methods are called to update the database.
3520
*
3521
* @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 column
3522
* @param reader the {@code java.io.Reader} object containing
3523
* the new column value
3524
* @param length the length of the stream
3525
* @throws SQLException if the columnLabel is not valid;
3526
* if a database access error occurs;
3527
* the result set concurrency is {@code CONCUR_READ_ONLY}
3528
* or this method is called on a closed result set
3529
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3530
* this method
3531
* @since 1.6
3532
*/
3533
void updateCharacterStream(String columnLabel,
3534
java.io.Reader reader,
3535
long length) throws SQLException;
3536
/**
3537
* Updates the designated column using the given input stream, which
3538
* will have the specified number of bytes.
3539
*
3540
* <p>
3541
* The updater methods are used to update column values in the
3542
* current row or the insert row. The updater methods do not
3543
* update the underlying database; instead the {@code updateRow} or
3544
* {@code insertRow} methods are called to update the database.
3545
*
3546
* @param columnIndex the first column is 1, the second is 2, ...
3547
* @param inputStream An object that contains the data to set the parameter
3548
* value to.
3549
* @param length the number of bytes in the parameter data.
3550
* @throws SQLException if the columnIndex is not valid;
3551
* if a database access error occurs;
3552
* the result set concurrency is {@code CONCUR_READ_ONLY}
3553
* or this method is called on a closed result set
3554
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3555
* this method
3556
* @since 1.6
3557
*/
3558
void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException;
3559
3560
/**
3561
* Updates the designated column using the given input stream, which
3562
* will have the specified number of bytes.
3563
*
3564
* <p>
3565
* The updater methods are used to update column values in the
3566
* current row or the insert row. The updater methods do not
3567
* update the underlying database; instead the {@code updateRow} or
3568
* {@code insertRow} methods are called to update the database.
3569
*
3570
* @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 column
3571
* @param inputStream An object that contains the data to set the parameter
3572
* value to.
3573
* @param length the number of bytes in the parameter data.
3574
* @throws SQLException if the columnLabel is not valid;
3575
* if a database access error occurs;
3576
* the result set concurrency is {@code CONCUR_READ_ONLY}
3577
* or this method is called on a closed result set
3578
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3579
* this method
3580
* @since 1.6
3581
*/
3582
void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException;
3583
3584
/**
3585
* Updates the designated column using the given {@code Reader}
3586
* object, which is the given number of characters long.
3587
* When a very large UNICODE value is input to a {@code LONGVARCHAR}
3588
* parameter, it may be more practical to send it via a
3589
* {@code java.io.Reader} object. The JDBC driver will
3590
* do any necessary conversion from UNICODE to the database char format.
3591
*
3592
* <p>
3593
* The updater methods are used to update column values in the
3594
* current row or the insert row. The updater methods do not
3595
* update the underlying database; instead the {@code updateRow} or
3596
* {@code insertRow} methods are called to update the database.
3597
*
3598
* @param columnIndex the first column is 1, the second is 2, ...
3599
* @param reader An object that contains the data to set the parameter value to.
3600
* @param length the number of characters in the parameter data.
3601
* @throws SQLException if the columnIndex is not valid;
3602
* if a database access error occurs;
3603
* the result set concurrency is {@code CONCUR_READ_ONLY}
3604
* or this method is called on a closed result set
3605
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3606
* this method
3607
* @since 1.6
3608
*/
3609
void updateClob(int columnIndex, Reader reader, long length) throws SQLException;
3610
3611
/**
3612
* Updates the designated column using the given {@code Reader}
3613
* object, which is the given number of characters long.
3614
* When a very large UNICODE value is input to a {@code LONGVARCHAR}
3615
* parameter, it may be more practical to send it via a
3616
* {@code java.io.Reader} object. The JDBC driver will
3617
* do any necessary conversion from UNICODE to the database char format.
3618
*
3619
* <p>
3620
* The updater methods are used to update column values in the
3621
* current row or the insert row. The updater methods do not
3622
* update the underlying database; instead the {@code updateRow} or
3623
* {@code insertRow} methods are called to update the database.
3624
*
3625
* @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 column
3626
* @param reader An object that contains the data to set the parameter value to.
3627
* @param length the number of characters in the parameter data.
3628
* @throws SQLException if the columnLabel is not valid;
3629
* if a database access error occurs;
3630
* the result set concurrency is {@code CONCUR_READ_ONLY}
3631
* or this method is called on a closed result set
3632
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3633
* this method
3634
* @since 1.6
3635
*/
3636
void updateClob(String columnLabel, Reader reader, long length) throws SQLException;
3637
/**
3638
* Updates the designated column using the given {@code Reader}
3639
* object, which is the given number of characters long.
3640
* When a very large UNICODE value is input to a {@code LONGVARCHAR}
3641
* parameter, it may be more practical to send it via a
3642
* {@code java.io.Reader} object. The JDBC driver will
3643
* do any necessary conversion from UNICODE to the database char format.
3644
*
3645
* <p>
3646
* The updater methods are used to update column values in the
3647
* current row or the insert row. The updater methods do not
3648
* update the underlying database; instead the {@code updateRow} or
3649
* {@code insertRow} methods are called to update the database.
3650
*
3651
* @param columnIndex the first column is 1, the second 2, ...
3652
* @param reader An object that contains the data to set the parameter value to.
3653
* @param length the number of characters in the parameter data.
3654
* @throws SQLException if the columnIndex is not valid;
3655
* if the driver does not support national
3656
* character sets; if the driver can detect that a data conversion
3657
* error could occur; this method is called on a closed result set,
3658
* if a database access error occurs or
3659
* the result set concurrency is {@code CONCUR_READ_ONLY}
3660
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3661
* this method
3662
* @since 1.6
3663
*/
3664
void updateNClob(int columnIndex, Reader reader, long length) throws SQLException;
3665
3666
/**
3667
* Updates the designated column using the given {@code Reader}
3668
* object, which is the given number of characters long.
3669
* When a very large UNICODE value is input to a {@code LONGVARCHAR}
3670
* parameter, it may be more practical to send it via a
3671
* {@code java.io.Reader} object. The JDBC driver will
3672
* do any necessary conversion from UNICODE to the database char format.
3673
*
3674
* <p>
3675
* The updater methods are used to update column values in the
3676
* current row or the insert row. The updater methods do not
3677
* update the underlying database; instead the {@code updateRow} or
3678
* {@code insertRow} methods are called to update the database.
3679
*
3680
* @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 column
3681
* @param reader An object that contains the data to set the parameter value to.
3682
* @param length the number of characters in the parameter data.
3683
* @throws SQLException if the columnLabel is not valid;
3684
* if the driver does not support national
3685
* character sets; if the driver can detect that a data conversion
3686
* error could occur; this method is called on a closed result set;
3687
* if a database access error occurs or
3688
* the result set concurrency is {@code CONCUR_READ_ONLY}
3689
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3690
* this method
3691
* @since 1.6
3692
*/
3693
void updateNClob(String columnLabel, Reader reader, long length) throws SQLException;
3694
3695
//---
3696
3697
/**
3698
* Updates the designated column with a character stream value.
3699
* The data will be read from the stream
3700
* as needed until end-of-stream is reached. The
3701
* driver does the necessary conversion from Java character format to
3702
* the national character set in the database.
3703
* It is intended for use when
3704
* updating {@code NCHAR},{@code NVARCHAR}
3705
* and {@code LONGNVARCHAR} columns.
3706
* <p>
3707
* The updater methods are used to update column values in the
3708
* current row or the insert row. The updater methods do not
3709
* update the underlying database; instead the {@code updateRow} or
3710
* {@code insertRow} methods are called to update the database.
3711
*
3712
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3713
* it might be more efficient to use a version of
3714
* {@code updateNCharacterStream} which takes a length parameter.
3715
*
3716
* @param columnIndex the first column is 1, the second is 2, ...
3717
* @param x the new column value
3718
* @throws SQLException if the columnIndex is not valid;
3719
* if a database access error occurs;
3720
* the result set concurrency is {@code CONCUR_READ_ONLY} or this method is called on a closed result set
3721
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3722
* this method
3723
* @since 1.6
3724
*/
3725
void updateNCharacterStream(int columnIndex,
3726
java.io.Reader x) throws SQLException;
3727
3728
/**
3729
* Updates the designated column with a character stream value.
3730
* The data will be read from the stream
3731
* as needed until end-of-stream is reached. The
3732
* driver does the necessary conversion from Java character format to
3733
* the national character set in the database.
3734
* It is intended for use when
3735
* updating {@code NCHAR},{@code NVARCHAR}
3736
* and {@code LONGNVARCHAR} columns.
3737
* <p>
3738
* The updater methods are used to update column values in the
3739
* current row or the insert row. The updater methods do not
3740
* update the underlying database; instead the {@code updateRow} or
3741
* {@code insertRow} methods are called to update the database.
3742
*
3743
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3744
* it might be more efficient to use a version of
3745
* {@code updateNCharacterStream} which takes a length parameter.
3746
*
3747
* @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 column
3748
* @param reader the {@code java.io.Reader} object containing
3749
* the new column value
3750
* @throws SQLException if the columnLabel is not valid;
3751
* if a database access error occurs;
3752
* the result set concurrency is {@code CONCUR_READ_ONLY} or this method is called on a closed result set
3753
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3754
* this method
3755
* @since 1.6
3756
*/
3757
void updateNCharacterStream(String columnLabel,
3758
java.io.Reader reader) throws SQLException;
3759
/**
3760
* Updates the designated column with an ascii stream value.
3761
* The data will be read from the stream
3762
* as needed until end-of-stream is reached.
3763
* <p>
3764
* The updater methods are used to update column values in the
3765
* current row or the insert row. The updater methods do not
3766
* update the underlying database; instead the {@code updateRow} or
3767
* {@code insertRow} methods are called to update the database.
3768
*
3769
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3770
* it might be more efficient to use a version of
3771
* {@code updateAsciiStream} which takes a length parameter.
3772
*
3773
* @param columnIndex the first column is 1, the second is 2, ...
3774
* @param x the new column value
3775
* @throws SQLException if the columnIndex is not valid;
3776
* if a database access error occurs;
3777
* the result set concurrency is {@code CONCUR_READ_ONLY}
3778
* or this method is called on a closed result set
3779
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3780
* this method
3781
* @since 1.6
3782
*/
3783
void updateAsciiStream(int columnIndex,
3784
java.io.InputStream x) throws SQLException;
3785
3786
/**
3787
* Updates the designated column with a binary stream value.
3788
* The data will be read from the stream
3789
* as needed until end-of-stream is reached.
3790
* <p>
3791
* The updater methods are used to update column values in the
3792
* current row or the insert row. The updater methods do not
3793
* update the underlying database; instead the {@code updateRow} or
3794
* {@code insertRow} methods are called to update the database.
3795
*
3796
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3797
* it might be more efficient to use a version of
3798
* {@code updateBinaryStream} which takes a length parameter.
3799
*
3800
* @param columnIndex the first column is 1, the second is 2, ...
3801
* @param x the new column value
3802
* @throws SQLException if the columnIndex is not valid;
3803
* if a database access error occurs;
3804
* the result set concurrency is {@code CONCUR_READ_ONLY}
3805
* or this method is called on a closed result set
3806
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3807
* this method
3808
* @since 1.6
3809
*/
3810
void updateBinaryStream(int columnIndex,
3811
java.io.InputStream x) throws SQLException;
3812
3813
/**
3814
* Updates the designated column with a character stream value.
3815
* The data will be read from the stream
3816
* as needed until end-of-stream is reached.
3817
* <p>
3818
* The updater methods are used to update column values in the
3819
* current row or the insert row. The updater methods do not
3820
* update the underlying database; instead the {@code updateRow} or
3821
* {@code insertRow} methods are called to update the database.
3822
*
3823
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3824
* it might be more efficient to use a version of
3825
* {@code updateCharacterStream} which takes a length parameter.
3826
*
3827
* @param columnIndex the first column is 1, the second is 2, ...
3828
* @param x the new column value
3829
* @throws SQLException if the columnIndex is not valid;
3830
* if a database access error occurs;
3831
* the result set concurrency is {@code CONCUR_READ_ONLY}
3832
* or this method is called on a closed result set
3833
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3834
* this method
3835
* @since 1.6
3836
*/
3837
void updateCharacterStream(int columnIndex,
3838
java.io.Reader x) throws SQLException;
3839
/**
3840
* Updates the designated column with an ascii stream value.
3841
* The data will be read from the stream
3842
* as needed until end-of-stream is reached.
3843
* <p>
3844
* The updater methods are used to update column values in the
3845
* current row or the insert row. The updater methods do not
3846
* update the underlying database; instead the {@code updateRow} or
3847
* {@code insertRow} methods are called to update the database.
3848
*
3849
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3850
* it might be more efficient to use a version of
3851
* {@code updateAsciiStream} which takes a length parameter.
3852
*
3853
* @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 column
3854
* @param x the new column value
3855
* @throws SQLException if the columnLabel is not valid;
3856
* if a database access error occurs;
3857
* the result set concurrency is {@code CONCUR_READ_ONLY}
3858
* or this method is called on a closed result set
3859
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3860
* this method
3861
* @since 1.6
3862
*/
3863
void updateAsciiStream(String columnLabel,
3864
java.io.InputStream x) throws SQLException;
3865
3866
/**
3867
* Updates the designated column with a binary stream value.
3868
* The data will be read from the stream
3869
* as needed until end-of-stream is reached.
3870
* <p>
3871
* The updater methods are used to update column values in the
3872
* current row or the insert row. The updater methods do not
3873
* update the underlying database; instead the {@code updateRow} or
3874
* {@code insertRow} methods are called to update the database.
3875
*
3876
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3877
* it might be more efficient to use a version of
3878
* {@code updateBinaryStream} which takes a length parameter.
3879
*
3880
* @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 column
3881
* @param x the new column value
3882
* @throws SQLException if the columnLabel is not valid;
3883
* if a database access error occurs;
3884
* the result set concurrency is {@code CONCUR_READ_ONLY}
3885
* or this method is called on a closed result set
3886
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3887
* this method
3888
* @since 1.6
3889
*/
3890
void updateBinaryStream(String columnLabel,
3891
java.io.InputStream x) throws SQLException;
3892
3893
/**
3894
* Updates the designated column with a character stream value.
3895
* The data will be read from the stream
3896
* as needed until end-of-stream is reached.
3897
* <p>
3898
* The updater methods are used to update column values in the
3899
* current row or the insert row. The updater methods do not
3900
* update the underlying database; instead the {@code updateRow} or
3901
* {@code insertRow} methods are called to update the database.
3902
*
3903
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3904
* it might be more efficient to use a version of
3905
* {@code updateCharacterStream} which takes a length parameter.
3906
*
3907
* @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 column
3908
* @param reader the {@code java.io.Reader} object containing
3909
* the new column value
3910
* @throws SQLException if the columnLabel is not valid; if a database access error occurs;
3911
* the result set concurrency is {@code CONCUR_READ_ONLY}
3912
* or this method is called on a closed result set
3913
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3914
* this method
3915
* @since 1.6
3916
*/
3917
void updateCharacterStream(String columnLabel,
3918
java.io.Reader reader) throws SQLException;
3919
/**
3920
* Updates the designated column using the given input stream. The data will be read from the stream
3921
* as needed until end-of-stream is reached.
3922
* <p>
3923
* The updater methods are used to update column values in the
3924
* current row or the insert row. The updater methods do not
3925
* update the underlying database; instead the {@code updateRow} or
3926
* {@code insertRow} methods are called to update the database.
3927
*
3928
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3929
* it might be more efficient to use a version of
3930
* {@code updateBlob} which takes a length parameter.
3931
*
3932
* @param columnIndex the first column is 1, the second is 2, ...
3933
* @param inputStream An object that contains the data to set the parameter
3934
* value to.
3935
* @throws SQLException if the columnIndex is not valid; if a database access error occurs;
3936
* the result set concurrency is {@code CONCUR_READ_ONLY}
3937
* or this method is called on a closed result set
3938
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3939
* this method
3940
* @since 1.6
3941
*/
3942
void updateBlob(int columnIndex, InputStream inputStream) throws SQLException;
3943
3944
/**
3945
* Updates the designated column using the given input stream. The data will be read from the stream
3946
* as needed until end-of-stream is reached.
3947
* <p>
3948
* The updater methods are used to update column values in the
3949
* current row or the insert row. The updater methods do not
3950
* update the underlying database; instead the {@code updateRow} or
3951
* {@code insertRow} methods are called to update the database.
3952
*
3953
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3954
* it might be more efficient to use a version of
3955
* {@code updateBlob} which takes a length parameter.
3956
*
3957
* @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 column
3958
* @param inputStream An object that contains the data to set the parameter
3959
* value to.
3960
* @throws SQLException if the columnLabel is not valid; if a database access error occurs;
3961
* the result set concurrency is {@code CONCUR_READ_ONLY}
3962
* or this method is called on a closed result set
3963
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3964
* this method
3965
* @since 1.6
3966
*/
3967
void updateBlob(String columnLabel, InputStream inputStream) throws SQLException;
3968
3969
/**
3970
* Updates the designated column using the given {@code Reader}
3971
* object.
3972
* The data will be read from the stream
3973
* as needed until end-of-stream is reached. The JDBC driver will
3974
* do any necessary conversion from UNICODE to the database char format.
3975
*
3976
* <p>
3977
* The updater methods are used to update column values in the
3978
* current row or the insert row. The updater methods do not
3979
* update the underlying database; instead the {@code updateRow} or
3980
* {@code insertRow} methods are called to update the database.
3981
*
3982
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
3983
* it might be more efficient to use a version of
3984
* {@code updateClob} which takes a length parameter.
3985
*
3986
* @param columnIndex the first column is 1, the second is 2, ...
3987
* @param reader An object that contains the data to set the parameter value to.
3988
* @throws SQLException if the columnIndex is not valid;
3989
* if a database access error occurs;
3990
* the result set concurrency is {@code CONCUR_READ_ONLY}
3991
* or this method is called on a closed result set
3992
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
3993
* this method
3994
* @since 1.6
3995
*/
3996
void updateClob(int columnIndex, Reader reader) throws SQLException;
3997
3998
/**
3999
* Updates the designated column using the given {@code Reader}
4000
* object.
4001
* The data will be read from the stream
4002
* as needed until end-of-stream is reached. The JDBC driver will
4003
* do any necessary conversion from UNICODE to the database char format.
4004
*
4005
* <p>
4006
* The updater methods are used to update column values in the
4007
* current row or the insert row. The updater methods do not
4008
* update the underlying database; instead the {@code updateRow} or
4009
* {@code insertRow} methods are called to update the database.
4010
*
4011
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
4012
* it might be more efficient to use a version of
4013
* {@code updateClob} which takes a length parameter.
4014
*
4015
* @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 column
4016
* @param reader An object that contains the data to set the parameter value to.
4017
* @throws SQLException if the columnLabel is not valid; if a database access error occurs;
4018
* the result set concurrency is {@code CONCUR_READ_ONLY}
4019
* or this method is called on a closed result set
4020
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
4021
* this method
4022
* @since 1.6
4023
*/
4024
void updateClob(String columnLabel, Reader reader) throws SQLException;
4025
/**
4026
* Updates the designated column using the given {@code Reader}
4027
*
4028
* The data will be read from the stream
4029
* as needed until end-of-stream is reached. The JDBC driver will
4030
* do any necessary conversion from UNICODE to the database char format.
4031
*
4032
* <p>
4033
* The updater methods are used to update column values in the
4034
* current row or the insert row. The updater methods do not
4035
* update the underlying database; instead the {@code updateRow} or
4036
* {@code insertRow} methods are called to update the database.
4037
*
4038
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
4039
* it might be more efficient to use a version of
4040
* {@code updateNClob} which takes a length parameter.
4041
*
4042
* @param columnIndex the first column is 1, the second 2, ...
4043
* @param reader An object that contains the data to set the parameter value to.
4044
* @throws SQLException if the columnIndex is not valid;
4045
* if the driver does not support national
4046
* character sets; if the driver can detect that a data conversion
4047
* error could occur; this method is called on a closed result set,
4048
* if a database access error occurs or
4049
* the result set concurrency is {@code CONCUR_READ_ONLY}
4050
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
4051
* this method
4052
* @since 1.6
4053
*/
4054
void updateNClob(int columnIndex, Reader reader) throws SQLException;
4055
4056
/**
4057
* Updates the designated column using the given {@code Reader}
4058
* object.
4059
* The data will be read from the stream
4060
* as needed until end-of-stream is reached. The JDBC driver will
4061
* do any necessary conversion from UNICODE to the database char format.
4062
*
4063
* <p>
4064
* The updater methods are used to update column values in the
4065
* current row or the insert row. The updater methods do not
4066
* update the underlying database; instead the {@code updateRow} or
4067
* {@code insertRow} methods are called to update the database.
4068
*
4069
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
4070
* it might be more efficient to use a version of
4071
* {@code updateNClob} which takes a length parameter.
4072
*
4073
* @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 column
4074
* @param reader An object that contains the data to set the parameter value to.
4075
* @throws SQLException if the columnLabel is not valid; if the driver does not support national
4076
* character sets; if the driver can detect that a data conversion
4077
* error could occur; this method is called on a closed result set;
4078
* if a database access error occurs or
4079
* the result set concurrency is {@code CONCUR_READ_ONLY}
4080
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
4081
* this method
4082
* @since 1.6
4083
*/
4084
void updateNClob(String columnLabel, Reader reader) throws SQLException;
4085
4086
//------------------------- JDBC 4.1 -----------------------------------
4087
4088
4089
/**
4090
*<p>Retrieves the value of the designated column in the current row
4091
* of this {@code ResultSet} object and will convert from the
4092
* SQL type of the column to the requested Java data type, if the
4093
* conversion is supported. If the conversion is not
4094
* supported or null is specified for the type, a
4095
* {@code SQLException} is thrown.
4096
*<p>
4097
* At a minimum, an implementation must support the conversions defined in
4098
* Appendix B, Table B-3 and conversion of appropriate user defined SQL
4099
* types to a Java type which implements {@code SQLData}, or {@code Struct}.
4100
* Additional conversions may be supported and are vendor defined.
4101
* @param <T> the type of the class modeled by this Class object
4102
* @param columnIndex the first column is 1, the second is 2, ...
4103
* @param type Class representing the Java data type to convert the designated
4104
* column to.
4105
* @return an instance of {@code type} holding the column value
4106
* @throws SQLException if conversion is not supported, type is null or
4107
* another error occurs. The getCause() method of the
4108
* exception may provide a more detailed exception, for example, if
4109
* a conversion error occurs
4110
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
4111
* this method
4112
* @since 1.7
4113
*/
4114
public <T> T getObject(int columnIndex, Class<T> type) throws SQLException;
4115
4116
4117
/**
4118
*<p>Retrieves the value of the designated column in the current row
4119
* of this {@code ResultSet} object and will convert from the
4120
* SQL type of the column to the requested Java data type, if the
4121
* conversion is supported. If the conversion is not
4122
* supported or null is specified for the type, a
4123
* {@code SQLException} is thrown.
4124
*<p>
4125
* At a minimum, an implementation must support the conversions defined in
4126
* Appendix B, Table B-3 and conversion of appropriate user defined SQL
4127
* types to a Java type which implements {@code SQLData}, or {@code Struct}.
4128
* Additional conversions may be supported and are vendor defined.
4129
*
4130
* @param columnLabel the label for the column specified with the SQL AS clause.
4131
* If the SQL AS clause was not specified, then the label is the name
4132
* of the column
4133
* @param type Class representing the Java data type to convert the designated
4134
* column to.
4135
* @param <T> the type of the class modeled by this Class object
4136
* @return an instance of {@code type} holding the column value
4137
* @throws SQLException if conversion is not supported, type is null or
4138
* another error occurs. The getCause() method of the
4139
* exception may provide a more detailed exception, for example, if
4140
* a conversion error occurs
4141
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
4142
* this method
4143
* @since 1.7
4144
*/
4145
public <T> T getObject(String columnLabel, Class<T> type) throws SQLException;
4146
4147
//------------------------- JDBC 4.2 -----------------------------------
4148
4149
/**
4150
* Updates the designated column with an {@code Object} value.
4151
*
4152
* The updater methods are used to update column values in the
4153
* current row or the insert row. The updater methods do not
4154
* update the underlying database; instead the {@code updateRow} or
4155
* {@code insertRow} methods are called to update the database.
4156
*<p>
4157
* If the second argument is an {@code InputStream} then the stream must contain
4158
* the number of bytes specified by scaleOrLength. If the second argument is a
4159
* {@code Reader} then the reader must contain the number of characters specified
4160
* by scaleOrLength. If these conditions are not true the driver will generate a
4161
* {@code SQLException} when the statement is executed.
4162
*<p>
4163
* The default implementation will throw {@code SQLFeatureNotSupportedException}
4164
*
4165
* @param columnIndex the first column is 1, the second is 2, ...
4166
* @param x the new column value
4167
* @param targetSqlType the SQL type to be sent to the database
4168
* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,
4169
* this is the number of digits after the decimal point. For
4170
* Java Object types {@code InputStream} and {@code Reader},
4171
* this is the length
4172
* of the data in the stream or reader. For all other types,
4173
* this value will be ignored.
4174
* @throws SQLException if the columnIndex is not valid;
4175
* if a database access error occurs;
4176
* the result set concurrency is {@code CONCUR_READ_ONLY}
4177
* or this method is called on a closed result set
4178
* @throws SQLFeatureNotSupportedException if the JDBC driver does not
4179
* support this method; if the JDBC driver does not support the specified targetSqlType
4180
* @see JDBCType
4181
* @see SQLType
4182
* @since 1.8
4183
*/
4184
default void updateObject(int columnIndex, Object x,
4185
SQLType targetSqlType, int scaleOrLength) throws SQLException {
4186
throw new SQLFeatureNotSupportedException("updateObject not implemented");
4187
}
4188
4189
/**
4190
* Updates the designated column with an {@code Object} value.
4191
*
4192
* The updater methods are used to update column values in the
4193
* current row or the insert row. The updater methods do not
4194
* update the underlying database; instead the {@code updateRow} or
4195
* {@code insertRow} methods are called to update the database.
4196
*<p>
4197
* If the second argument is an {@code InputStream} then the stream must
4198
* contain number of bytes specified by scaleOrLength. If the second
4199
* argument is a {@code Reader} then the reader must contain the number
4200
* of characters specified by scaleOrLength. If these conditions are not
4201
* true the driver will generate a
4202
* {@code SQLException} when the statement is executed.
4203
*<p>
4204
* The default implementation will throw {@code SQLFeatureNotSupportedException}
4205
*
4206
* @param columnLabel the label for the column specified with the SQL AS
4207
* clause. If the SQL AS clause was not specified, then the label is
4208
* the name of the column
4209
* @param x the new column value
4210
* @param targetSqlType the SQL type to be sent to the database
4211
* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,
4212
* this is the number of digits after the decimal point. For
4213
* Java Object types {@code InputStream} and {@code Reader},
4214
* this is the length
4215
* of the data in the stream or reader. For all other types,
4216
* this value will be ignored.
4217
* @throws SQLException if the columnLabel is not valid;
4218
* if a database access error occurs;
4219
* the result set concurrency is {@code CONCUR_READ_ONLY}
4220
* or this method is called on a closed result set
4221
* @throws SQLFeatureNotSupportedException if the JDBC driver does not
4222
* support this method; if the JDBC driver does not support the specified targetSqlType
4223
* @see JDBCType
4224
* @see SQLType
4225
* @since 1.8
4226
*/
4227
default void updateObject(String columnLabel, Object x,
4228
SQLType targetSqlType, int scaleOrLength) throws SQLException {
4229
throw new SQLFeatureNotSupportedException("updateObject not implemented");
4230
}
4231
4232
/**
4233
* Updates the designated column with an {@code Object} value.
4234
*
4235
* The updater methods are used to update column values in the
4236
* current row or the insert row. The updater methods do not
4237
* update the underlying database; instead the {@code updateRow} or
4238
* {@code insertRow} methods are called to update the database.
4239
*<p>
4240
* The default implementation will throw {@code SQLFeatureNotSupportedException}
4241
*
4242
* @param columnIndex the first column is 1, the second is 2, ...
4243
* @param x the new column value
4244
* @param targetSqlType the SQL type to be sent to the database
4245
* @throws SQLException if the columnIndex is not valid;
4246
* if a database access error occurs;
4247
* the result set concurrency is {@code CONCUR_READ_ONLY}
4248
* or this method is called on a closed result set
4249
* @throws SQLFeatureNotSupportedException if the JDBC driver does not
4250
* support this method; if the JDBC driver does not support the specified targetSqlType
4251
* @see JDBCType
4252
* @see SQLType
4253
* @since 1.8
4254
*/
4255
default void updateObject(int columnIndex, Object x, SQLType targetSqlType)
4256
throws SQLException {
4257
throw new SQLFeatureNotSupportedException("updateObject not implemented");
4258
}
4259
4260
/**
4261
* Updates the designated column with an {@code Object} value.
4262
*
4263
* The updater methods are used to update column values in the
4264
* current row or the insert row. The updater methods do not
4265
* update the underlying database; instead the {@code updateRow} or
4266
* {@code insertRow} methods are called to update the database.
4267
*<p>
4268
* The default implementation will throw {@code SQLFeatureNotSupportedException}
4269
*
4270
* @param columnLabel the label for the column specified with the SQL AS
4271
* clause. If the SQL AS clause was not specified, then the label is
4272
* the name of the column
4273
* @param x the new column value
4274
* @param targetSqlType the SQL type to be sent to the database
4275
* @throws SQLException if the columnLabel is not valid;
4276
* if a database access error occurs;
4277
* the result set concurrency is {@code CONCUR_READ_ONLY}
4278
* or this method is called on a closed result set
4279
* @throws SQLFeatureNotSupportedException if the JDBC driver does not
4280
* support this method; if the JDBC driver does not support the specified targetSqlType
4281
* @see JDBCType
4282
* @see SQLType
4283
* @since 1.8
4284
*/
4285
default void updateObject(String columnLabel, Object x,
4286
SQLType targetSqlType) throws SQLException {
4287
throw new SQLFeatureNotSupportedException("updateObject not implemented");
4288
}
4289
}
4290
4291