티스토리 뷰
Interface ResultSet
- All Superinterfaces:
- AutoCloseable, Wrapper
- All Known Subinterfaces:
- CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, RowSet, SyncResolver, WebRowSet
public interface ResultSet extends Wrapper, AutoCloseable
A table of data representing a database result set, which is usually generated by executing a statement that queries the database.A
ResultSet
object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. Thenext
method moves the cursor to the next row, and because it returnsfalse
when there are no more rows in theResultSet
object, it can be used in awhile
loop to iterate through the result set.A default
ResultSet
object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produceResultSet
objects that are scrollable and/or updatable. The following code fragment, in whichcon
is a validConnection
object, illustrates how to make a result set that is scrollable and insensitive to updates by others, and that is updatable. SeeResultSet
fields for other options.Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2"); // rs will be scrollable, will not show changes made by others, // and will be updatable
TheResultSet
interface provides getter methods (getBoolean
,getLong
, and so on) for retrieving column values from the current row. Values can be retrieved using either the index number of the column or the name of the column. In general, using the column index will be more efficient. Columns are numbered from 1. For maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once.For the getter methods, a JDBC driver attempts to convert the underlying data to the Java type specified in the getter method and returns a suitable Java value. The JDBC specification has a table showing the allowable mappings from SQL types to Java types that can be used by the
ResultSet
getter methods.Column names used as input to getter methods are case insensitive. When a getter method is called with a column name and several columns have the same name, the value of the first matching column will be returned. The column name option is designed to be used when column names are used in the SQL query that generated the result set. For columns that are NOT explicitly named in the query, it is best to use column numbers. If column names are used, the programmer should take care to guarantee that they uniquely refer to the intended columns, which can be assured with the SQL AS clause.
A set of updater methods were added to this interface in the JDBC 2.0 API (JavaTM 2 SDK, Standard Edition, version 1.2). The comments regarding parameters to the getter methods also apply to parameters to the updater methods.
The updater methods may be used in two ways:
- to update a column value in the current row. In a scrollable
ResultSet
object, the cursor can be moved backwards and forwards, to an absolute position, or to a position relative to the current row. The following code fragment updates theNAME
column in the fifth row of theResultSet
objectrs
and then uses the methodupdateRow
to update the data source table from whichrs
was derived.rs.absolute(5); // moves the cursor to the fifth row of rs rs.updateString("NAME", "AINSWORTH"); // updates the //
NAME
column of row 5 to beAINSWORTH
rs.updateRow(); // updates the row in the data source - to insert column values into the insert row. An updatable
ResultSet
object has a special row associated with it that serves as a staging area for building a row to be inserted. The following code fragment moves the cursor to the insert row, builds a three-column row, and inserts it intors
and into the data source table using the methodinsertRow
.rs.moveToInsertRow(); // moves cursor to the insert row rs.updateString(1, "AINSWORTH"); // updates the // first column of the insert row to be
AINSWORTH
rs.updateInt(2,35); // updates the second column to be35
rs.updateBoolean(3, true); // updates the third column totrue
rs.insertRow(); rs.moveToCurrentRow();
A
ResultSet
object is automatically closed when theStatement
object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.The number, types and properties of a
ResultSet
object's columns are provided by theResultSetMetaData
object returned by theResultSet.getMetaData
method.
Method Detail
next
boolean next() throws SQLException
Moves the cursor froward one row from its current position. AResultSet
cursor is initially positioned before the first row; the first call to the methodnext
makes the first row the current row; the second call makes the second row the current row, and so on.When a call to the
next
method returnsfalse
, the cursor is positioned after the last row. Any invocation of aResultSet
method which requires a current row will result in aSQLException
being thrown. If the result set type isTYPE_FORWARD_ONLY
, it is vendor specified whether their JDBC driver implementation will returnfalse
or throw anSQLException
on a subsequent call tonext
.If an input stream is open for the current row, a call to the method
next
will implicitly close it. AResultSet
object's warning chain is cleared when a new row is read.- Returns:
true
if the new current row is valid;false
if there are no more rows- Throws:
SQLException
- if a database access error occurs or this method is called on a closed result set
출처 : https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
'jsp' 카테고리의 다른 글
JDBC 에서의 트랜잭션(Transaction) 처리 (0) | 2017.05.29 |
---|---|
request.getAttribute (0) | 2017.05.29 |
Classloader (0) | 2017.03.02 |
deploy path (0) | 2017.03.02 |
4. Servlet 맛보기 (0) | 2016.12.28 |