cual es la forma correcta de paginar los datos en una base de datos utilizando la template de spring

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

no se puede

Que yo sepa en una base de datos no se paginan los datos, solo se almacenan, con la posibilidad de agregar muchas condiciones/restricciones.

Imagen de ezamudio

Mas o menos...

En la base de datos almacenas los datos pero cuando los pides, puedes pedir solamente un subconjunto. Por ejemplo PostgreSQL tiene las palabras reservadas OFFSET y LIMIT para el SELECT, lo que te permite traer solamente los datos que necesitas mostrar para una página, en vez de traerte miles de registros para mostrar solamente 20 y ya sea guardar en memoria el resto o traerte nuevamente los miles de registros para mostrar los de la página siguiente.

Mientras uses el mismo ORDER BY y las mismas condiciones no tienes bronca. Por ejemplo para traer items en grupos de 20, las primeras 3 páginas las obtienes con estos queries:

SELECT * FROM item WHERE condicion=bla ORDER BY fecha,algo_mas LIMIT 20;
SELECT * FROM item WHERE condicion=bla ORDER BY fecha,algo_mas OFFSET 20 LIMIT 20;
SELECT * FROM item WHERE condicion=bla ORDER BY fecha,algo_mas OFFSET 40 LIMIT 20;

Obvio para invocar eso tienes que tener listos los queries, hacer los cálculos de LIMIT y OFFSET en la aplicación y pasarle esos parámetros al query (en PostgreSQL sí puedes poner OFFSET ? LIMIT ? para luego pasar esos datos como parámetros via JDBC).

http://free-twilight.com

Hi everybody, I just want to say hello! How is everyone??

en spring existe el

en spring existe el template.querForListPagination esto lo hace automaticamente el cambio de pagina o no , puede colcoar un ejemplo amigo

yo estoy con ibatis , por

yo estoy con ibatis , por ejemplo colocar asi

public List queryForList(final String statementName, final Object parameterObject, final int skipResults, final int maxResults)

entonces en el xml tendira la sentencia sql

SELECT * FROM item WHERE condicion=bla ORDER BY fecha,algo_mas LIMIT OFFSET skipResults LIMIT maxResults ;

es asi deberia hacer o tambien tengo que entregar el numero de pagina y como hago para que vuelva atras o lo hace automaticametne a??