ResultSet의 객체는 테이블의 행을 가리키는 커서를 유지합니다. 처음에는 커서가 첫 번째 행 앞을 가리킵니다.
기본적으로 ResultSet 개체는 앞으로만 이동할 수 있으며 업데이트할 수 없습니다.
그러나 createStatement(int,int) 메소드에 TYPE_SCROLL_INSENSITIVE 또는 TYPE_SCROLL_SENSITIVE를 전달하여 이 객체가 앞뒤 방향으로 이동하도록 만들 수 있으며 다음을 통해 이 객체를 업데이트 가능하게 만들 수 있습니다.
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet 인터페이스의 일반적으로 사용되는 메소드
1) 공개 부울 next(): | 현재 위치에서 다음 행으로 커서를 이동하는 데 사용됩니다. |
2) 공개 부울 이전(): | 현재 위치에서 한 행 이전으로 커서를 이동하는 데 사용됩니다. |
3) 공개 부울 우선(): | 결과 집합 개체의 첫 번째 행으로 커서를 이동하는 데 사용됩니다. |
4) 공개 부울 마지막(): | 결과 집합 개체의 마지막 행으로 커서를 이동하는 데 사용됩니다. |
5) 공개 부울 절대값(int 행): | ResultSet 객체의 지정된 행 번호로 커서를 이동하는 데 사용됩니다. |
6) 공개 부울 상대(int 행): | ResultSet 개체의 상대 행 번호로 커서를 이동하는 데 사용되며 양수 또는 음수일 수 있습니다. |
7) 공개 int getInt(int 열 인덱스): | 현재 행의 지정된 열 인덱스의 데이터를 int로 반환하는 데 사용됩니다. |
8) 공개 int getInt(문자열 열 이름): | 현재 행의 지정된 열 이름의 데이터를 int로 반환하는 데 사용됩니다. |
9) 공개 문자열 getString(int 열 인덱스): | 현재 행의 지정된 열 인덱스의 데이터를 문자열로 반환하는 데 사용됩니다. |
10) 공개 문자열 getString(문자열 열 이름): | 현재 행의 지정된 열 이름의 데이터를 문자열로 반환하는 데 사용됩니다. |
스크롤 가능한 ResultSet의 예
3번째 행의 데이터를 검색하는 ResultSet 인터페이스의 간단한 예를 살펴보겠습니다.
import java.sql.*; class FetchRecord{ public static void main(String args[])throws Exception{ Class.forName('oracle.jdbc.driver.OracleDriver'); Connection con=DriverManager.getConnection('jdbc:oracle:thin:@localhost:1521:xe','system','oracle'); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=stmt.executeQuery('select * from emp765'); //getting the record of 3rd row rs.absolute(3); System.out.println(rs.getString(1)+' '+rs.getString(2)+' '+rs.getString(3)); con.close(); }}