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
Vorwort Der Dienst wird seit mehreren Monaten auf...
1. Zwei Eigenschaften des Tabellen-Resets: ①borde...
Zusammensetzung der Tabellenbeschriftung Die Tabe...
Die Isolierung von Prozessadressräumen ist ein be...
Inhaltsverzeichnis 1. Clevere Verwendung von Indi...
1. Laden Sie den MySQL-JDBC-Treiber (mysql-connec...
Inhaltsverzeichnis 2. Zweck 2.1 Objekten Eigensch...
Beim Herunterfahren des MySQL-Servers können, abh...
Die Installation der Dekomprimierungsversion von ...
Was ist eine Bindung? NIC-Bond ist eine Technolog...
1. Titel HTML definiert sechs <h>-Tags: <...
Inhaltsverzeichnis Was ist ein Plugin Plugins sch...
Die Drag & Drop-API fügt ziehbare Elemente zu...
Die Zeit vergeht wie im Flug und in nur sechs Tag...
In diesem Artikelbeispiel wird der spezifische Co...