Este artículo describe la tecnología de paginación basada en la implementación hibernada. Compártelo para su referencia, como sigue:
Permítanme explicar primero el principio de implementar la paginación basada en Hibernate. Si obtiene 100 piezas de datos de la base de datos, necesitamos mostrar 10 piezas por página. Si comienza a partir de 30, solo necesita establecer la posición inicial y el resultado máximo de retorno para ingresar el código primero: Tenga en cuenta que los parámetros pasados en la página incluyen, que se introducirán más adelante.
Lista pública <At artículo> QueryByPage (nombre de usuario final de cadena, página de página final) {return this.gethibernateTemplate (). ExecUteFind (new HibernateCallback () {public object doinHibernate (sesión Session) lanza HibernateException, sqlexception {Query Query = session.CreeTery ("Seleccione Art de Arten Art. consulta.setParameter (0, nombre de usuario);El código de clave anterior es SetMaxResults (), y setFirStresult (), que establece el valor de visualización máximo y el punto de partida.
Aquí necesitamos una clase de herramientas de página para operar la paginación.
Page.java:
paquete com.fenye; página de clase pública {// 1. Número de pantallas por página (Everypage) private int Everypage; // 2. Número total de registros (TotalCount) Private Int TotalCount; // 3. Número total de páginas (TotalPage) Private Int TotalPage; // 4. Página actual (CurrentPage) Private int currentPage; // 5. Punto de inicio (BeginIndex) Private int BeginIndex; // 6. ¿Hay una página anterior (Hasprepage) private boolean Hasprepage; // 7. ¿Hay una página siguiente (HasnextPage) private boolean HasnextPage; Página pública (int EveryPage, int TotalCount, int TotalPage, int CurrentPage, int BeginIdex, Boolean Haspepage, Boolean HasnextPage) {this.everypage = Everypage; this.totalCount = TotalCount; this.totalPage = TotalPage; this.CurrentPage = currentPage; this.beginIndex = beginIndex; this.hasprepage = Hasprepage; this.hasNextPage = HasNextPage; } // constructor, página pública predeterminada () {} // construye el método, establece todos los atributos public int geteveryveryPage () {return EveryPage; } public void seteverypage (int EveryPage) {this.everyPage = EveryPage; } public int getTotalCount () {return TotalCount; } public void settotalCount (int TotalCount) {this.totalCount = TotalCount; } public int getTotalPage () {return TotalPage; } public void settotalPage (int totalpage) {this.totalPage = totalPage; } public int getTotalPage () {return TotalPage; } public void settotalPage (int totalpage) {this.totalPage = totalPage; } public int getCurrentPage () {return currentPage; } public void setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getBeginIndex () {return beginIndex; } public void setBeginIndex (int beginIndex) {this.beginIndex = beginIndex; } public boolean ishasprepage () {return Hasprepage; } public void sethasprepage (boolean Hasprepage) {this.hasprepage = Hasprepage; } public boolean ishasNextPage () {return HasnextPage; } public void sethasnextPage (boolean HasnextPage) {this.hasNextPage = HasNextPage; }}La clase de herramienta de página encapsula principalmente la información de la página, cuántos datos hay en total, cuánto se muestra en una página, el número de puntos de partida, el número total de páginas, ya sea que haya la página anterior, la página siguiente y la página actual.
Además, se necesita una clase de herramientas para páginas operativas, pageUtil.java
paquete com.sanqing.fenye;/** Información de paginación Clase auxiliar*/public class PageUtil {public static Page CreatePage (int EveryPage, int TotalCount, int CurrentPage) {EveryPage = GetEveryPage (EveryPage); currentPage = getCurrentPage (currentPage); int totalPage = getTotalPage (Everypage, TotalCount); int beginIndex = getBeginIndex (EveryPage, CurrentPage); boolean Hasprepage = GethAsprepage (CurrentPage); Boolean HasnextPage = GetHasNextPage (TotalPage, CurrentPage); Devolver nueva página (todas las páginas, TotalCount, TotalPage, CurrentPage, BeginIdex, HasPrepage, HasnextPage); } public static Page CreatePage (página de página, int TotalCount) {int EveryPage = GetEveryPage (page.getGeveryPage ()); int currentPage = getCurrentPage (page.getCurrentPage ()); int totalPage = getTotalPage (Everypage, TotalCount); int beginIndex = getBeginIndex (EveryPage, CurrentPage); boolean Hasprepage = GethAsprepage (CurrentPage); Boolean HasnextPage = GetHasNextPage (TotalPage, CurrentPage); Devolver nueva página (todas las páginas, TotalCount, TotalPage, CurrentPage, BeginIdex, HasPrepage, HasnextPage); } // Establezca el número de registros que se muestran por página Public static int geteverypage (int EveryPage) {return EveryPage == 0? 10: todas las páginas; } // Establecer la página actual Public static int getCurrentPage (int currentPage) {return currentPage == 0? 1: CurrentPage; } // Establecer el número total de páginas, se requiere el número total de registros, cuántos públicos está en la static int getTotalPage (int EveryPage, int TotalCount) {int TotalPage = 0; if (TotalCount % EveryPage == 0) {TotalPage = TotalCount / EveryPage; } else {TotalPage = TotalCount / EveryPage + 1; } return TotalPage; } // Establezca el punto de partida, cuántos públicos static int } // Establezca si hay una página anterior, y la página actual debe ser pública estática boolean gethasprepage (int currentPage) {return currentPage == 1? falso: verdadero; } // Establezca si hay uno siguiente, y el número total de páginas y la página actual necesita pública gethasnextPage estático estático (int totalpage, int currentPage) {return currentPage == TotalPage || TotalPage == 0? falso: verdadero; }}Crear una página solo requiere 3 parámetros. Cuántos datos se muestran en cada página, cuántos datos se muestran en la página actual, cuántos datos son totales y los otros 4 parámetros se pueden calcular a través de estos tres.
Entonces, para crear una página más adelante, solo necesita llamar a este método de herramienta PageUtil.CreatePage (3 parámetros) y devolver una página.
La página devuelta es la página del parámetro anterior, es decir, la página que se mostrará
Esto se considerará como completar la función de paginación.
Espero que la descripción en este artículo sea útil para la programación Java de todos en función del marco Hibernate.