Java Web implementiert die Paging -Funktion und teilen sie wie folgt mit allen:
Verwenden Sie Framework: SSM
Datenbank: Oracle
Wenn Sie von Oraces Pagination -Abfrage sprechen, ist dies viel komplizierter als MySQL. Lassen Sie uns hier kurz darüber sprechen:
Fragen Sie die ersten zehn Daten ab:
Wählen Sie * aus (SELECT ROWNUM WN, RN. * Von (ID, Title, create_time as createtime, muusictor, muktitle aus krry_blog order von create_time desc) rn) Wnwhere Wn <= 10 und Wn> 0
Die Grammatik ist komplizierter.
Mit dem gleichen Ergebnis ist die Syntax von MySQL: Sie kann mit einer Grenze gelöst werden.
Wählen Sie ID, Titel, create_time als createtime, mussictor, muktitlefrom krry_blog order durch create_time Desclimit 0,5 aus
Ich werde nicht über den Bau des SSM -Frameworks sprechen. Ich habe es im vorherigen Blog ausführlich vorgestellt. Hier werde ich über die Funktion der Implementierung von Java -Web -Pagination sprechen.
Verwenden Sie Plugin JS: krry_page.js und jQuery
Mapper Persistenzschicht:
BlogMapper.java
package com.krry.mapper;import java.util.HashMap;import java.util.List;import com.krry.entity.Params;/** * * Mapper: Operate database* @author krry * @version 1.0.0 * */public interface BlogMapper { /** * Query all blogs* @param params * @return */ public Liste <HashMap <String, Objekt >> findBlogs (Params -Params); / ** * Berechnen Sie die Anzahl der Blogs * com.krry.dao.admin * Methodenname: countblogs * @author krry * @param params * @return int * @Exception * @Since 1.0.0 */ public long blogs (); } BlogMapper.xml
<? <!-Pagination Query Alle Blog-Informationen-> <select id = "findBlogs" resultType = "java.util.hashMap" ParameterType = "Params"> select * aus (select rownum wn, rn. #{pageSize} und wn> #{pageno} </select> <!-AbfragenService Business Layer:
Schnittstellenklasse: iblogservice.java
Paket com.krry.service; import java.util.hashMap; import Java.util.list; import Javax.servlet.http.httpServletRequest; Import org.apache.ibatis.Annotations.param; Impl) * @Author Asusaad * */public interface iblogservice {/** * Pagination -Abfrage für alle Blogs * @param params * @return */publiclist <HashMap <String, Objekt >> findBlogs (Params Params); / ** * Berechnen Sie die Anzahl der Blogs * @param params * @return */ public long countblogs (); } Implementierung der Implementierungsklasse: BlogService.java
Paket com.krry.service.impl; import Java.util.hashMap; Import Java.util.List; org.springframework.bean.factory.Annotation.autowired; com.krry.entity.params; import com.krry.mapper.blogmapper; import com.krry.service.iblogservice;/** * Implementierung der Service -Layer -Schnittstelle * @Author Asusaad * */ @ServicePublic Class BlogService Implements Iblogservice {@Antowired private Blogmaper blogmaper blogmaper; /*** query blog*/publiclist <HashMap <String, Objekt >> findBlogs (Params Params) {// query Blog -Informationsliste <Hashmap <String, Objekt >> blog = blogmapper.findblogs (Params); Blog zurückgeben; } / ** * Berechnen Sie die Anzahl der Blogs * @param params * @return * / public long countblogs () {long Coutblogs = blogmapper.countblogs (); Return Coutblogs; }}Controller -Steuerungsschicht:
Krrycontroller.java
Paket com.krry.controller; import Java.util.hashMap; import Java.util.list; org.springframework.web.bind.annotation.Responsebody; import org.springframework.web.servlet.ModelandView; // bedeutet, dass es sich um ein Multi-Case-Muster handelt, und die von jedem Benutzer zurückgegebene Webschicht ist eine andere öffentliche Klasse KryController {@autowired private iblogservice blogservice; /*** Homepage und Pagination Query* @Return*/@RequestMapping ("/index") public modelAndView Index (Params params) {params.setPageno (0); params.setPageSize (10); // Zu Beginn werden nur 10 Elemente abgefragt // Aufrufen der Geschäftsschichtliste <HashMap <String, Object >> blogs = blogservice.findblogs (Params); // Abfragen Sie die Anzahl der Blogs long coutblogs = blogservice.countblogs (); ModelAndView modelAndView = new ModelAndView (); modelAndView.addObject ("Blogs", Blogs); modelAndView.addObject ("Coutblogs", Coutblogs); modelAndView.setViewName ("Index"); return modelAndview; }/** * Pagination -Abfrage für AJAX -Anforderung * @param params * @return */@ResponseBody @RequestMapping ("/loadData") public HashMap <String, Object> loadData (Params Params) {Hashmap <String, Objekt> map = new Hashmap <String, Objekt, Objekt> (); Liste <HashMap <String, Objekt >> Blogs = BlogService.findblogs (Params); map.put ("Blogs", Blogs); Rückgabekarte; }}Hier gibt es zwei Entitätsklassen, die als injiziertes Blog für Datenbankabfrage und zwei Parameter für Paginierungsabfrageparameter verwendet werden:
Setzen Sie die Datenparameter: Pageno (nächste Seite): Ist die Anzahl der aktuellen Seiten* die Menge, die auf der nächsten Seite von PageSize angezeigt wird (nächste Seite): die Menge, die abfragt wurde (pageno) + die auf jeder Seite angezeigte Menge
In der Datenbank befinden sich wn <= pageSize und wn> pageno -to -Abfrage -Seitendaten
Blog.java
Paket com.krry.entity;/** * * user * @author krry * @Version 1.0.0 * */public class Blog {// Primärschlüssel private String -ID; // Blog -Titel privater String -Titel; // Musikautor Private String Music Musictitle; // Musiktitel privater String -Musiktitle; // Erstellung Zeit private String CreateTime; public blog (String -ID, String -Titel, String Musictor, String Musictitle, String CreateTime) {this.id = id; this.title = title; this.MusicTor = muusictor; this.musictitle = muktitle; this.createTime = CreateTime; } public String getId () {return id; } public void setID (String -ID) {this.id = id; } public String gettitle () {return title; } public void settitle (String title) {this.title = title; } public String getMusicTor () {return musik; } public void setMusicTor (String Music) {this.MusicTor = muusictor; } public String getMusicTitle () {return muktitle; } public void setMusicTitle (String muktitle) {this.musictitle = muusictitle; } public String getCreateTime () {return createTime; } public void setCreateTime (String createTime) {this.createTime = CreateTime; }} Params.java
Paket com.krry.entity;/** * * Params * @author krry * @version 1.0.0 * */public class Params {private Integer pageSize = 0; private Ganzzahl pageno = 0; public Integer getPageno () {return pageno; } public void setpageno (Integer pageno) {this.pageno = pageno; } public Integer getPageSize () {return pageSize; } public void setPageSize (Integer pageSize) {this.pageSize = pageSize; }} Webseitenindex.jsp
<%@ page Language = "java" import = "java.util. request.getscheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; Body {Hintergrund: URL ("Ressourcen/Bilder/78788.jpg"); Hintergrundgröße: Cover;} .titless {Schriftgröße: 34px; Text-Align: Mitte; Farbe: Schwarz; Margin-Bottom: 16px;} .Ke_tabbox {min-height: 556px; Breite: 20px; width: 900Px; 0; Padding: 6px; Position: relativ;} .Ke_tabbox .SendMy {text-align: center; Schriftfamilie: "Microsoft Yahei"; Schriftgröße: 28px; -Webkit-Text-Fill-Farben: transparent; Hintergrund: -Webkit -Gradient (linear, links oben, links unten, von (#fd8700) bis (#ff00b1)); -Webkit-Background-Clip: Text; Rand: 8px Auto 0; Zeilenhöhe: 35px;} .Ke_tabbox .Ke_table {Breite: 100%; ellipsis; Grenze: 1px solide #fff; padding: 4px 12px; Farbe: #666; Schriftgröße: 12px;} /*paginierte bezogen* / .TZPage {font-size: 12px; .t_mode {padding-right: 4px;} #tbody .t_avbiaoq: hover {color: #ff6857; Übergang: .4s} #tbody .t_dele {padding-left: 4px;} .Tzpage a {textdekoration: none; border: keine; color:#7d7d7d; Hintergrundfarbe:#f2f2f2; Border-Radius: 3px;} .TzPage A: Hover {Hintergrund:#dd5862; color: #fff;}. Tzpage a, .Tzpage Span {Anzeige: Block: Block: Block: Block: Block: Block: Block; 0,5EM; Rand-Rechts: 5px; Rand-Bottom: 5px; Minwidth: 1EM; Text-Align: Mitte; Linienhöhe: 22px; Höhe: 22px;} .Tzpage. .current #TM_PageGo {Border-Radius: 3px; Höhe: 18px; Breite: 30px; Float: Links; Text-Align: Mitte; Grenze: 1PX Solid #e5e5e5; Linienhöhe: 22px; Farbe: #999} .Sortdesc {Border-Top: 5px Solid; Breite: 0px; Höhe: 0px; Anzeige: Inline-Block; vertikaler Align: Mitte; Grenzrechte: 5px fest transparent; Grenze-links: 5px fest transparent; Rand-Links: 5px; Solid; Breite: 0px; Höhe: 0px; Anzeige: Inline-Block; vertikaler Align: Mitte; Grenzrechte: 5px Solid Transparent; Border-Links: 5px Festkörper-Transparent; Text-Align: Mitte; Zeilenhöhe: 300px; Rand: 16px; Anzeige: Keine;} .hideadd a {Schriftgröße: 28px; -Webkit-Text-Fill-Farben: transparent; Hintergrund: -Webkit-Gradient (linear, links unten, von (#fd0051) bis (#a22c93); Anzeige </p> <table> <Thead> <tr> <Th> Title </th> <Th> Music Man </th> <Th> Musiktitel </th> <Th> veröffentlichte Zeit </th> </tr> </thead> <tbody id = "tbody" data-itemcount = "$ {coutblogs}"> <c: für var = "items <td> <a> $ {blog.title} </a> </td> <td> <a> $ {blog.musicTor} </a> </td> <td> <a> $ {blog.MusicTor} </a> </td> <td> <a> $ {blog.MusicTle}}}} $ {blog. <td> $ {blog.createtime} </td> </tr> </c: foreach> </tbody> </table> <div id = "krrypage"> </div> </div> <script type = "text/javascript" type = "text/javaScript" src = "$ {basepath} /resource/js/Krry_page.js"> </script> <script type = "text/javaScript"> var basepath = "$ {Basepath}"; $ ("#krryPage"). Tzpage (itemCount, {num_display_entries: 5, // num der Hauptseiten num_edge_entries: 4, // num von Edge Pages Current_Page: 0, // Geben Sie die ausgewählte Seitenzahl an. SHOWSelect: False, Callback: Funktion (Pageno, PSIZE) {// Zwei Parameter werden zurückgegeben. }, // Datenparameter festlegen: Pageno (nächste Seite): Die Anzahl der Seiten, die auf der nächsten Seite angezeigt werden sollen. LoadData: Funktion (pageno, pageSize) {pageno = pageno * pageSize; pageSize = pageno + 10; $ .ajax ({type: "post", url: basepath+"/loadData", Daten: {pageno: pageno, pageSize: pageSize}, Erfolg: Funktion (Daten) {if (data) {var html = ""; var blogarr = data.blogs; Blogarr [i]; title = '"+json.name+"'> "+json "</tr>"; }}; krryadminblog.initpage ($ ("#tbody"). Daten ("itemCount")); </script> </body> </html>Paginierungsprüfungen:
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.