JDBC 중개자 페이징
페이징은 지정된 시간에 메모리로 가져온 데이터의 크기를 제한할 수 있기 때문에 대용량 데이터 세트를 통한 이동에 유용할 수 있습니다. JDBC DMS API는 페이징을 구현하는 두 인터페이스를 제공합니다.
DMS(Data Mediator Service)에 제공된 메타데이터가 고객을 정의하고 페이지 크기가 10으로 설정되면, 첫 번째 페이지는 처음 10개의 고객 DataObjects를 포함한 DataGraph입니다. 다음 페이지는 다음 10개의 고객이 있는 다른 DataGraph입니다.
JDBC DMS는 그래프의 루트에 페이징을 제공한다는 점을 기억해야 합니다. 즉, 리턴된 관련 DataObjects의 수에 제한사항은 없습니다. 예를 들어, DMS에 제공된 메타데이터가 고객과 관련 순서를 정의하면 페이징되는 고객입니다. 페이지 크기가 10으로 설정되면, 첫 번째 페이지는 처음 10명의 고객과 각 고객에 대해 관련된 순서가 있는 그래프입니다.
Pager 및 CountingPager를 사용할 수 있는 DMS에서 제공된 두 인터페이스가 있습니다. Pager 인터페이스는 커서와 유사한 next() 메소드 기능을 제공합니다. next() 함수는 중개자 메타데이터에서 지정된 전체 데이터 세트로부터 데이터의 다음 페이지를 표시하는 그래프를 리턴합니다. 동일한 기능으로 사용 가능한 previous() 함수도 있으며 뒤로 이동합니다. CountingPager 인터페이스를 사용하면 특정 페이지 번호를 검색할 수 있습니다. 다음 예는 페이지당 루트 테이블에서 최대 5개의 DataObject가 있는 CountingPager 인터페이스를 사용하여 고객 인스턴스의 큰 세트를 통한 페이징을 설명합니다.
CountingPager pager = PagerFactory.soleInstance.createCountingPager(5);
int count = pager.pageCount(mediator);
for (int i = 1, i <= count, i++) {
DataObject graph = pager.page(i, mediator);
// Iterate through all returned customers in the
// current page.
Iterator iter = graph.getList("CUSTOMER").iterator();
while (iter.hasNext()) {
DataObject cust = (DataObject) iter.next();
System.out.println(cust.getString("CUSTFIRS NAME"));
}
}
처음 페이지 전 또는 사용 가능한 마지막 페이지 후 이동하려고 하는 경우, JDBC 중개자 예외가 발생합니다.