Paginación de JDBC Mediator

La paginación puede resultar de utilidad para desplazarse por grandes conjuntos de datos porque puede limitar la cantidad de datos introducidos en memoria en un momento dado. La API DMS de JDBC proporciona dos interfaces que implementan la paginación.

Si los metadatos proporcionados al DMS (Data Mediator Service) definen clientes y el tamaño de página está establecido en diez, entonces la primera página es un DataGraph que contiene los diez primeros DataObjects del cliente. La página siguiente es otro DataGraph con los diez siguientes clientes, etc.

Algo a tener en cuenta es que el DMS de JDBC proporciona paginación en la raíz del gráfico. Es decir, no hay limitación en el número de DataObjects relacionados devueltos. Por ejemplo, si los metadatos proporcionados al DMS definen clientes y pedidos relacionados, son los clientes que se paginan. Si el tamaño de página está establecido en diez, entonces la primera página es un gráfico con los 10 primeros clientes y todos los pedidos relacionados para cada cliente.

Hay dos interfaces proporcionados por el DMS que puede aprovechar, Pager y CountingPager. La interfaz Pager proporciona una posibilidad de método next() similar a un cursor. La función next() devuelve un gráfico que representa la siguiente página de datos de un conjunto de datos completo especificado por los metadatos de Mediator. También hay una función previous() disponible con las mismas posibilidades, sólo que retrocede. La interfaz CountingPager permite recuperar un número de página específico. El ejemplo siguiente ilustra la paginación en un conjunto de instancias de cliente utilizando la interfaz CountingPager con un máximo de 5 DataObjects de la tabla raíz por página.

CountingPager pager = PagerFactory.soleInstance.createCountingPager(5);
int count = pager.pageCount(mediator);
for (int i = 1, i <= count, i++) {
DataObject graph = pager.page(i, mediator);
// Itera por todos los clientes devueltos de la 
// página actual.
Iterator iter = graph.getList("CUSTOMER").iterator();
 while (iter.hasNext()) {
  DataObject cust = (DataObject) iter.next();
System.out.println(cust.getString("CUSTFIRS NAME"));
 }
}

Si intenta desplazarse delante de la primera página o después de la última página disponible, se produce una excepción de JDBC Mediator.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_sdopage
File name: rdat_sdopage.html