제7장 Row Set

내용 목차

7.1. 개요
7.2. Row Set Listener
7.3. Cached Row Set
7.3.1. RowSet 객체 생성
7.3.2. 열 데이터 탐색
7.3.3. 제약 사항

본 장에서는 tbJDBC에서 제공하는 Row Set 기능을 설명한다.

Row Set이란 문자 그대로 로우 데이터의 집합을 포함하는 객체이다. javax.sql.RowSet 인터페이스 메소드를 통해 접근할 수 있다.

일반적으로 Row Set은 다음과 같이 세 가지로 나뉜다.

Row Set에서는 여러 개의 리스너를 등록하여 사용할 수 있다. 등록할 때는 addRowSetListener() 메소드를 사용하고, 제거할 때는 removeRowSetListener() 메소드를 사용하면 된다. 이때 사용되는 리스너는 반드시 javax.sql.RowSetListener 인터페이스를 통해서 구현되어야 한다.

RowSetListener 인터페이스에서 제공하는 이벤트는 다음과 같이 3가지이다.

이벤트설명
cursorMovednext()나 previous() 등의 메소드를 통해 열의 이동이 있을 때 마다 발생한다.
rowChanged새로운 열이 추가되거나 기존의 열이 수정되거나 삭제될 때 발생한다.
rowSetChanged전체 Row Set이 생성되거나 변경될 때 발생한다.

RowSetListener 인터페이스의 이벤트를 사용하는 방법은 다음의 예와 같다.

  1. 리스너 클래스를 생성한다.

    public class MyListener implements RowSetListener
    {
        public void cursorMoved(RowSetEvent event) {
            // do work
        }
        public void rowChanged(RowSetEvent event) {
            // do work
        }
        public void rowSetChanged(RowSetEvent event) {
            // do work
        }
    }
  2. 리스너를 RowSet 객체에 등록한다.

    MyListener mListener = new MyListener();
    rowset.addRowSetListener(mListener);

Cached Row Set은 모든 열을 캐시에 저장하고, 데이터베이스와의 연결을 유지하지 않도록 구현된 Row Set의 한 형태이다. tbJDBC에서는 TbCachedRowSet 클래스로 제공된다.