Cet article décrit la technologie de pagination basée sur la mise en œuvre de l'hibernate. Partagez-le pour votre référence, comme suit:
Permettez-moi d'abord d'expliquer le principe de la mise en œuvre de la pagination basée sur l'hibernate. Si vous récupérez 100 éléments de données de la base de données, nous devons afficher 10 pièces par page. Si vous commencez à partir de 30, il vous suffit de définir la position de départ et le résultat de retour maximum pour saisir le code d'abord: notez que les paramètres passés dans la page incluent, qui seront introduits plus tard.
Liste publique <Re article> QueryByPage (Nom d'utilisateur final de chaîne, page finale de la page) {return this.GetHibernateTemplate (). ExecuteFind (new HiberNateCallback () {public objet doinHibernate (session session) lance l'article HiberNateException, SQLEXception {requête questionname = Session. Questionnal.Le code de clé ci-dessus est SetMaxResults (), et setFirStResult (), qui définit la valeur d'affichage maximale et le point de départ.
Ici, nous avons besoin d'une classe d'outils de page pour faire fonctionner la pagination.
Page.java:
package com.fenye; page de classe publique {// 1. Numéro d'affichages par page (everypage) private int everypage; // 2. Nombre total d'enregistrements (totalCount) privé int totalCount; // 3. Nombre total de pages (TotalPage) privé int totalpage; // 4. Page actuelle (CurrentPage) private int currentPage; // 5. Point de démarrage (BeginIndex) private int BeginIndex; // 6. Existe-t-il une page précédente (hasprepage) Hasprepage booléen privé; // 7. Existe-t-il une page suivante (HasnextPage) Boolean privé HasnextPage; PAGE PUBLIQUE (int Everypage, int totalCount, int totalpage, int currentpage, int débutant, booléen hasprepage, booléen hasnextpage) {this.everypage = everypage; this.totalCount = totalCount; this.totalpage = totalpage; this.currentPage = currentPage; this.beginIndex = beginIndex; this.hasprepage = hasprepage; this.hasnextPage = HasnextPage; } // Constructeur, page publique par défaut () {} // Construisez la méthode, définissez tous les attributs publics int getEveryPage () {return everypage; } public void seteverypage (int everypage) {this.theverypage = 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 débutant) {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 classe d'outils de page résume principalement les informations sur la page, la quantité de données en total, la quantité affichée sur une page, le nombre de points de départ, le nombre total de pages, qu'il y ait la page précédente, la page suivante et la page actuelle.
De plus, une classe d'outils pour les pages d'exploitation est nécessaire, Pageutil.java
package com.sanqing.fenye; / * * Informations de pagination Classe auxiliaire * / classe publique PageUtil {public static Page CreatePage (int everypage, int totalCount, int currentPage) {eymePage = getEveryPage (evergot); currentPage = GetCurrentPage (CurrentPage); int totalpage = getTotalPage (everypage, totalCount); int débutant = getbeginIndex (everypage, currentPage); booléen hasprepage = gethasprepage (currentpage); Booléan HasnextPage = GethasNextPage (TotalPage, CurrentPage); Renvoie une nouvelle page (EveryPage, TotalCount, TotalPage, CurrentPage, BeginIndex, Hasprepage, HasnextPage); } public static page createpage (page, int totalCount) {int everypage = getEveryPage (page.getEveryPage ()); int currentPage = getCurrentPage (page.getCurrentPage ()); int totalpage = getTotalPage (everypage, totalCount); int débutant = getbeginIndex (everypage, currentPage); booléen hasprepage = gethasprepage (currentpage); Booléan HasnextPage = GethasNextPage (TotalPage, CurrentPage); Renvoie une nouvelle page (EveryPage, TotalCount, TotalPage, CurrentPage, BeginIndex, Hasprepage, HasnextPage); } // Définissez le nombre d'enregistrements affichés par page public static int getEveryPage (int everypage) {return everypage == 0? 10: chaque page; } // Définissez la page actuelle publique static int getCurrentPage (int currentPage) {return currentPage == 0? 1: CurrentPage; } // Définit le nombre total de pages, le nombre total d'enregistrements est requis, combien de public static int GetTotalPage (int everypage, int totalCount) {int totalpage = 0; if (totalCount% everypage == 0) {totalPage = totalCount / everyPage; } else {totalPage = TotalCount / EveryPage + 1; } return totalpage; } // Définissez le point de départ, combien de public static int getbeginIndex (int everypage, int currentPage) {return (currentPage - 1) * everypage; } // Définissez s'il y a une page précédente, et la page actuelle doit être publique Boolean Gethasprepage (int currentPage) {return currentPage == 1? false: vrai; } // Définissez s'il y en a un suivant, et le nombre total de pages et la page actuelle nécessite un booléen statique publique GethasnextPage (int totalpage, int currentPage) {return currentPage == TotalPage || TotalPage == 0? false: vrai; }}Créer une page ne nécessite que 3 paramètres. Combien de données sont affichées sur chaque page, quelle quantité de données est affichée sur la page actuelle, la quantité de données totale et les 4 autres paramètres peuvent être calculés via ces trois.
Donc, pour créer une page plus tard, vous n'avez qu'à appeler cette méthode d'outil PageUtil.CreatePage (3 paramètres) et renvoyer une page.
La page retournée est la page du paramètre précédent, c'est-à-dire la page à afficher
Cela sera considéré comme remplira la fonction de pagination.
J'espère que la description de cet article sera utile à la programmation Java de chacun basée sur le cadre d'hibernate.