FilteredRowSet
FilteredRowSet (필터링된 행 집합)
모든 표준 FilteredRowSet 구현이 구현해야 하는 표준 인터페이스입니다.
본문
FilteredRowSetImpl 클래스는 필요하면 확장할 수 있는 참조 구현을 제공하고, 공급업체는 이 인터페이스를 구현해 자체 버전을 만들 수도 있어요.
때때로 RowSet 객체는 내용에 일정 수준의 필터링을 제공할 필요가 있습니다. 한 가지 해결책은 모든 표준 RowSet 구현에 질의 언어를 제공하는 것이지만, 연결 해제된 RowSet 같은 경량 컴포넌트에는 비현실적이에요. FilteredRowSet 인터페이스는 무거운 질의 언어와 그 처리 없이 이 필요를 해결합니다.
JDBC FilteredRowSet 표준 구현은 RowSet 인터페이스를 구현하고 CachedRowSet 클래스를 확장합니다. CachedRowSet 클래스는 보호된 커서 조작 메서드 집합을 제공하며, FilteredRowSet 구현은 이를 오버라이드해 필터링 지원을 제공할 수 있어요.
Predicate(필터)를 구현하면 FilteredRowSet을 다음과 같이 사용할 수 있습니다.
FilteredRowSet frs = new FilteredRowSetImpl();
frs.populate(rs);
Range name = new Range("Alpha", "Bravo", "columnName");
frs.setFilter(name);
frs.next(); // only names from "Alpha" to "Bravo" will be returned
여기서 Range 객체는 Predicate 인터페이스를 구현합니다. 이 객체는 "이 FilteredRowSet에서 출력되거나 수정되는 모든 행은 filter의 제약 안에 있어야 한다"는 제약을 표현해요. FilteredRowSet은 필터 제약을 양방향으로 시행합니다. 필터 제약 안에 있는 행만 출력하고, 역으로 필터 제약 안에 있는 행만 삽입·수정·갱신합니다.
void setFilter(Predicate p) throws SQLException
Predicate getFilter()