Dieser Artikel beschreibt die Paginationstechnologie basierend auf der Implementierung des Winterschlafes. Teilen Sie es für Ihre Referenz wie folgt weiter:
Lassen Sie mich zunächst das Prinzip der Implementierung von Paging auf der Grundlage von Hibernate erklären. Wenn Sie 100 Datenstücke aus der Datenbank abrufen, müssen wir 10 Stück pro Seite anzeigen. Wenn Sie ab 30 Uhr beginnen, müssen Sie nur die Startposition und das maximale Rückgabeergebnis festlegen, um den Code zuerst einzugeben: Beachten Sie, dass die in der Seite enthaltenen Parameter später eingeführt werden.
public list <Akticle> queryBypage (endgültiger String -Benutzername, endgültige Seite Seite) {return this.gethiberNatetemplate (). ExecuteFind (neuer HibernateCallback () {öffentliches Objekt doinhiberNate (Sitzungssitzung) veröffentlichen HibernateException, sqlexception {Query Query = Session. Query.SetParameter (0, Benutzername)Der obige Schlüsselcode wird setMaxResults () und setfirstresult () set set set set set set set set set set set, wodurch der maximale Anzeigewert und den Ausgangspunkt festgelegt werden.
Hier benötigen wir eine Seiten -Werkzeugklasse, um Pagination zu betreiben.
Page.java:
Paket com.fenye; öffentliche Klasse Seite {// 1. Anzahl der Anzeigen pro Seite (EveryPage) private int EveryPage; // 2. Gesamtzahl der Datensätze (TotalCount) Private int TotalCount; // 3. Gesamtzahl der Seiten (TotalPage) Private int TotalPage; // 4. aktuelle Seite (aktuelle Seite) private int currentPage; // 5. Start Point (begindex) Private int begindex; // 6. Gibt es eine vorherige Seite (HaSprepage) Private Boolean HaSprepage? // 7. Gibt es eine nächste Seite (hasNextPage) privat boolean hasNextPage; öffentliche Seite (int EveryPage, int TotalCount, int TotalPage, int CurrentPage, int begindex, boolean hasprepage, boolean hasNextPage) {this.EveryPage = EveryPage; this.totalcount = TotalCount; this.totalpage = TotalPage; this.currentPage = currentPage; this.beginIndex = begindex; this.Hasprepage = HaSprepage; this.hasNextPage = hasNextPage; } // Konstruktor, Standard public page () {} // Die Methode konstruieren, alle Attribute public int getEverypage () {zurückgeben jederpage; } 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 setotalpage (int TotalPage) {this.totalPage = TotalPage; } public int getTotalpage () {return TotalPage; } public void setotalpage (int TotalPage) {this.totalPage = TotalPage; } public int getCurrentPage () {return CurrentPage; } public void setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getBeginIndex () {return begindex; } public void setBeginIndex (int begindex) {this.beginIndex = begindex; } public boolean ishasprepage () {return hasprepage; } public void sethasprepage (boolean HaSprepage) {thaS.Hasprepage = HaSprepage; } public boolean ishasnextPage () {return hasNextPage; } public void sethasnextPage (boolean hasNextPage) {this.hasnextPage = hasNextPage; }}Die Seiten -Werkzeugklasse fasst die Seiteninformationen hauptsächlich zusammen, wie viel Daten insgesamt sind, wie viel auf einer Seite angezeigt wird, die Anzahl der Startpunkte, die Gesamtzahl der Seiten, ob es die vorherige Seite, die nächste Seite und die aktuelle Seite gibt.
Außerdem ist eine Werkzeugkurs für Betriebsseiten erforderlich, pageutil.java
Paket com.Sanqing.fenye;/** Paginationsinformationen Hilfsklasse*/public class pageuutil {public static Page CreatePage (int EveryPage, int TotalCount, int CurrentPage) {EveryPage = GetEveryPage (EveryPage); currentPage = getCurrentPage (currentPage); int TotalPage = GetTotalPage (EveryPage, TotalCount); int begindeIndex = getBinIndex (EveryPage, CurrentPage); boolean HaSprepage = Gethasprepage (CurrentPage); boolean hasNextPage = gethasnextPage (TotalPage, CurrentPage); Neue Seite zurückgeben (EveryPage, TotalCount, TotalPage, CurrentPage, begindex, hasPrepage, hasNextPage); } public static Page CreatePage (Seite Seite, int TotalCount) {int EveryPage = GetEverypage (page.getEverypage ()); int currentPage = getCurrentPage (page.getCurrentPage ()); int TotalPage = GetTotalPage (EveryPage, TotalCount); int begindeIndex = getBinIndex (EveryPage, CurrentPage); boolean HaSprepage = Gethasprepage (CurrentPage); boolean hasNextPage = gethasnextPage (TotalPage, CurrentPage); Neue Seite zurückgeben (EveryPage, TotalCount, TotalPage, CurrentPage, begindex, hasPrepage, hasNextPage); } // Setzen Sie die Anzahl der angezeigten Datensätze, die pro Seite angezeigt werden. 10: EveryPage; } // Setzen Sie die aktuelle Seite public static int getCurrentPage (int currentPage) {return currentPage == 0? 1: Strompage; } // Setzen Sie die Gesamtzahl der Seiten, die Gesamtzahl der Datensätze, wie viele öffentliche statische Int -GetTotalPage (int EveryPage, int TotalCount) {int TotalPage = 0; if (totalCount % EveryPage == 0) {TotalPage = TotalCount / EveryPage; } else {TotalPage = TotalCount / EveryPage + 1; } return TotalPage; } // Setzen Sie den Ausgangspunkt, wie viele öffentliche statische Int -GetBeginIndex (int EveryPage, int CurrentPage) {return (CurrentPage - 1) * EveryPage; } // Legen Sie fest, ob es eine vorherige Seite gibt, und die aktuelle Seite muss öffentlich statisch boolean gethasprepage (int currentPage) {return currentPage == 1 sein? Falsch: wahr; } // Legen Sie fest, ob es eine nächste gibt, und die Gesamtzahl der Seiten und die aktuelle Seite benötigt öffentliche statische boolesche GethasnextPage (int TotalPage, int currentPage) {Return CurrentPage == TotalPage || TotalPage == 0? Falsch: wahr; }}Erstellen Sie eine Seite benötigt nur 3 Parameter. Wie viele Daten auf jeder Seite angezeigt werden, wie viel Daten auf der aktuellen Seite angezeigt werden, wie viel Daten sind insgesamt und die anderen 4 Parameter können über diese drei berechnet werden.
Um eine Seite später zu erstellen, müssen Sie diese Tool -Methode nur aufrufen.
Die zurückgegebene Seite ist die Seite des vorherigen Parameters, dh der zu angezeigten Seite
Dies gilt als Abschluss der Paginationsfunktion.
Ich hoffe, dass die Beschreibung in diesem Artikel für Java -Programme aller hilfreich ist, die auf dem Hibernate -Framework basieren.