JDBC ResultSet의 두 가지 유형
JDBC에서 ResultSet 객체는 크게 순방향 전용(forward-only)과 양방향(bi-directional) 두 가지 유형으로 나뉩니다. 이름 그대로 순방향 전용 ResultSet은 앞쪽 방향으로만 포인터를 이동할 수 있고, 양방향 ResultSet은 포인터를 앞뒤 양쪽 방향으로 자유롭게 이동할 수 있습니다.
ResultSet 인터페이스는 이러한 두 유형의 객체를 탐색할 수 있도록 다양한 메소드를 제공합니다.
ResultSet 탐색 메소드 목록
아래 표는 ResultSet 객체를 탐색할 때 사용할 수 있는 주요 메소드를 정리한 것입니다.
| 메소드 | 설명 |
|---|---|
| next() | ResultSet 포인터를 한 행 앞으로 이동합니다. |
| previous() | ResultSet 포인터를 한 행 뒤로 이동합니다. |
| first() | ResultSet 포인터를 첫 번째 행으로 이동합니다. |
| last() | ResultSet 포인터를 마지막 행으로 이동합니다. |
| relative(int rows) | 행 수를 나타내는 정수 값을 인자로 받아, 해당 값만큼 포인터를 앞 또는 뒤로 이동합니다. 양수이면 앞쪽(다음) 방향으로, 음수이면 뒤쪽(이전) 방향으로 이동합니다. |
| absolute(int row) | 행 번호를 나타내는 정수 값을 인자로 받아, 해당 위치로 포인터를 직접 이동합니다(1부터 시작). 양수를 전달하면 첫 번째 행부터 시작하여 지정된 위치로 이동하고, 음수를 전달하면 마지막 행부터 역방향으로 계산한 지정된 위치로 이동합니다. |
| beforeFirst() | ResultSet 포인터를 기본 위치인 첫 번째 행 앞(before first)으로 이동합니다. |
| afterLast() | ResultSet 포인터를 마지막 행 뒤(after last)에 위치시킵니다. |
참고 사항
previous(), first(), last(), absolute() 등 양방향 탐색 메소드를 사용하려면 Statement 생성 시 TYPE_SCROLL_INSENSITIVE 또는 TYPE_SCROLL_SENSITIVE와 같은 스크롤 가능한 ResultSet 타입을 지정해야 합니다. 기본 설정인 순방향 전용 ResultSet에서는 next() 메소드만 사용할 수 있다는 점을 유의하세요.