Zunächst müssen wir klarstellen, warum wir paginierte Abfragen verwenden. Da die Daten sehr groß sind, ist es unmöglich, alle Daten auf der Seite anzuzeigen. Wenn alle Daten auf der Seite angezeigt werden, ist die Abfragegeschwindigkeit langsam. Daher löst die paginierte Abfrage die Probleme ① Datenabfrage; ② Leistungsoptimierung usw. (andere Probleme können gerne ergänzt werden). Paginierungsabfragen werden auch in echte und falsche Paginierung unterteilt: Echtes Paging: Zeigt die in der Datenbank gefundenen Daten direkt in Seiten an. Der Vorteil besteht darin, dass Änderungen an den Datenbankdaten die Abfrageergebnisse nicht beeinflussen. Der Nachteil besteht darin, dass die Geschwindigkeit etwas geringer ist. Falsche Paging: Kapseln Sie alle abgefragten Daten in den Listensammlungscache und führen Sie den Methodenaufruf der Präsentationsschicht aus. Da die Daten als Sammlung gekapselt und im Speicher abgelegt werden, ist die Geschwindigkeit höher, der Nachteil besteht jedoch darin, dass es nach einer Änderung der Datenbank zu Nichtübereinstimmungen kommt. Die beiden Paging-Arten haben ihre eigenen Vor- und Nachteile. Bitte verwenden Sie sie je nach der jeweiligen Situation. Das Folgende ist die eigentliche Paging-Methode: 1. JavaBean erstellen importiere java.io.Serializable; /** * Benutzerentitätsklasse * @author * */ öffentliche Klasse UserBean implementiert Serializable { /**Benutzer-ID*/ private int-ID; /**Benutzername*/ privater String-Name; öffentliche UserBean() { } öffentliche UserBean(int id, String name) { diese.id = ID; dieser.name = Name; } öffentliche int getId() { Rückgabe-ID; } öffentliche void setId(int id) { diese.id = ID; } öffentliche Zeichenfolge getName() { Rückgabename; } öffentliche void setName(String name) { dieser.name = Name; } @Überschreiben öffentliche Zeichenfolge toString() { gibt "UserBean [id=" + id + ", name=" + name + "]" zurück; } } 2. JavaBean zum Anzeigen von Paging-Daten /** * JavaBean-Objekt zum Anzeigen von Paging-Daten * @author * */ importiere java.util.List; öffentliche Klasse PagenationBean { /** Aktuelle Seitenzahl*/ private Integer aktuelleSeite; /**Gesamtzahl der Seiten*/ private Ganzzahl Gesamtseite; /**Tabellendaten zur Anzeige */ private Liste<UserBean> Datenliste; öffentliche Ganzzahl getCurrPage() { aktuelleSeite zurückgeben; } öffentliche void setCurrPage(Integer currPage) { diese.aktuelleSeite = aktuelleSeite; } öffentliche Ganzzahl getTotalPage() { gib Gesamtseite zurück; } public void setTotalPage(Integer totalPage) { this.totalPage = Gesamtseite; } öffentliche Liste<StuBean> getDataList() { Datenliste zurückgeben; } public void setDataList(List<StuBean> dataList) { diese.Datenliste = Datenliste; } } 3. Implementierungsklasse der Dao-Schicht @Überschreiben public int getTotalCount() { //Gesamtzahl der Daten berechnen this.setConnection(); int Gesamtanzahl = 0; versuchen { ps = con.prepareStatement("Wählen Sie count(*) aus t_user aus"); rs = ps.executeQuery(); wenn (rs.next()) { totalCount = rs.getInt(1); } } Fang (Ausnahme e) { e.printStackTrace(); Endlich diese.closeConnection(); } gib Gesamtanzahl zurück; } @Überschreiben public List<UserBean> getUserListByStartIndex(int StartIndex) { // Holen Sie sich gemäß dem ersten übergebenen Parameter „limit“ die 10 Daten hinter diesem Parameter. List<UserBean> userList = new ArrayList<>(); BenutzerBean BenutzerBean = null; dies.setConnection(); int Gesamtanzahl = 0; versuchen { ps = con.prepareStatement("Wählen Sie * aus t_user-Limit?, 10"); ps.setInt(1, StartIndex); rs = ps.executeQuery(); während (rs.next()) { userBean = neue StuBean(); userBean.setId(rs.getInt("id")); userBean.setName(rs.getString("name")); stuList.add(userBean); } } Fang (Ausnahme e) { e.printStackTrace(); Endlich diese.closeConnection(); } Benutzerliste zurückgeben; } 4. Implementierungsklasse der Serviceschicht private IUserDao isd = neues UserDaoImpl(); @Überschreiben öffentliche int getTotalPage() { //Anzahl der Daten abrufen int totalCount = isd.getTotalCount(); //Gesamtseitenzahl berechnen: int totalPage = (totalCount + 10 -1)/10; gib Gesamtseite zurück; } @Überschreiben öffentliche Liste<UserBean> getUserListByCurrPage(int currPage) { //Startindex durch die aktuelle Seite berechnen int StartIndex = (currPage - 1) * 10; List<UserBean> userList = isd.getStuListByStartIndex(StartIndex); Benutzerliste zurückgeben; } 5. Fügen Sie die abgefragten Daten zur Anzeige in die Seite ein. Bei der obigen Methode werden 10 Daten auf Seiten angezeigt. Die Berechnung und Analyse erfolgen wie folgt: Gesamtzahl der Datenelemente: totalCount Anzahl der Einträge pro Seite: pageSize Gesamtzahl der Seiten: totalPage StartIndex Aktuelle Seitenzahl currPage Formel zur Berechnung der Gesamtseitenzahl: Gesamtanzahl % Seitengröße Wenn der Rest 0 ist ——> totalPage = totalCount / pageSize Wenn der Rest nicht 0 ist ——> totalPage = totalCount / pageSize + 1 Fazit: totalPage = (totalCount + pageSize -1)/pageSize Zusammenfassen Oben sehen Sie die vom Herausgeber eingeführte MySql-Seitenabfragefunktion. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: So kaufen Sie einen Server und richten ihn zunächst ein
>>: Detaillierte Erklärung zur Verwendung der JavaScript-Zwischenablage
In der MySQL-Datenbank gibt es eine Tabelle Stude...
Laut Nullwerten bedeutet der Wert Null in MySQL l...
Inhaltsverzeichnis Vorwort 1. Was sind Mixins? 2....
Als ich MySQL konfiguriert habe, habe ich die Sta...
Farbe ist eines der wichtigsten Elemente jeder We...
Unten beginnt der Haupttext. 123WORDPRESS.COM Her...
Vorwort Ab MySQL-Version 3.23.44 unterstützen Inn...
Inhaltsverzeichnis Überblick 1. Definieren Sie st...
systemd: Das Service-Systemctl-Skript von CentOS ...
Wie in der folgenden Abbildung dargestellt: Wenn ...
Kapitel 1 <br />Das wichtigste Prinzip, um ...
Ein Ereignis ist eine vom Benutzer oder dem Brows...
Vorwort Wir müssen häufig etwas basierend auf bes...
Geben Sie net start mysql in cmd ein und die Eing...
1. Installieren Sie die virtuelle Maschine Hyper-...