logo

결과세트 인터페이스

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(); }}