Java Web implémente la fonction de pagination et la partage avec tout le monde, comme suit:
Utiliser le cadre: SSM
Base de données: Oracle
En parlant de la requête de pagination d'Oracle est beaucoup plus compliquée que MySQL. Parlons-en brièvement ici:
Interroger les dix premières données:
SELECT * FROM (SELECT ROWNUM WN, RN. * FROM (SELECT ID, Title, Create_time as CreateTime, Musictor, Musictle from Krry_Blog Order by Create_time Desc) rn) wnwhere wn <= 10 et wn> 0
La grammaire est plus compliquée.
Avec le même résultat, la syntaxe de MySQL est: elle peut être résolue avec une limite.
Sélectionnez ID, Title, Create_time as CreateTime, Musictor, Musictlefrom Krry_blog Order by Create_time Desclimit 0,5
Je ne parlerai pas de la construction du cadre SSM. Je l'ai présenté en détail dans le blog précédent. Ici, je parlerai de la fonction de l'implémentation de la pagination Web Java.
Utilisez le plugin js: krry_page.js et jQuery
Couche de persistance du mappeur:
Blogmapper.java
Package com.krry.mapper; import java.util.hashmap; import java.util.list; import com.krry.entity.params; / ** * * maappel: Operate database * @author krry * @version 1.0.0 * * / interface publique BlogMapper {/ ** * Query tous les blogs * @PARAM PARAMS * @retrn * / Public List <HAURY, tous les blogs * @PARAM PARAMS * Objet >> findBlogs (params params); / ** * Calculez le nombre de blogs * com.krry.dao.admin * Nom de la méthode: countblogs * @author krry * @param params * @return int * @Exception * @Since 1.0.0 * / public long countblogs (); } Blogmapper.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappeur public "- // Mybatis.org//dtd Mappeur 3.0 // en" "http://mybatis.org/dtd/mybatis.mapper.blogmper"> <! - <! " Pagination Query Toutes les informations du blog -> <select id = "findblogs" resultType = "java.util.hashmap" ParamètreType = "Params"> SELECT * FROM (SELECT ROWNUM WN, RN. # {PageSize} et wn> # {pageno} </lect> <! - Requête le nombre de blogs -> <select id = "countblogs" resultType = "long"> SELECT COUNT (*) FROM KRRY_BLOG </ELECT> </ MAPTER>Couche commerciale de service:
Classe d'interface: iblogservice.java
package com.krry.service; import java.util.hashmap; import java.util.list; import javax.servlet.http.httpservletRequest; import org.apache.ibatis.annotations.param; import com.krry.entity.blog; importer le coque dans impl) * @author asusaad * * / interface publique iblogService {/ ** * Query de pagination pour tous les blogs * @param params * @return * / public list <hashmap <string, objet >> findBlogs (params params); / ** * Calculez le nombre de blogs * @param params * @return * / public long countblogs (); } Classe d'implémentation IMP: blogService.java
package com.krry.service.impl; import java.util.hashmap; import java.util.list; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterreotype.mervice; import org.springframework.web.sserver com.krry.entity.params; import com.krry.mapper.blogmapper; import com.krry.service.iblogservice; / ** * Implémentation d'interface de couche de service * @Author ASUSAAD * * / @ ServicePublic classe blogmapper; / ** * Blog de requête * / Liste publique <hashmap <String, objet >> findBlogs (params params) {// Liste d'informations de blog de requête <hashmap <string, objet >> blog = blogMapper.findBlogs (params); Blog de retour; } / ** * Calculez le nombre de blogs * @param params * @return * / public long countblogs () {long coutblogs = blogmapper.countBlogs (); Retour Coutblogs; }}Couche de contrôle du contrôleur:
KrryController.java
package com.krry.controller; import java.util.hashmap; import java.util.list; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterereotype.controller; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.modelandView; import com.krry.entity.params; import com.krry.service.iblogservice; / ** * KrryConToller * Controller compile, subvendu qu'il s'agit d'un modèle multi-cas, et que la couche Web renvoyée par chaque utilisateur est une classe publique différente KrryController {@autowired private iBlogService BlogService; / ** * Page d'accueil et requête de pagination * @return * / @requestmapping ("/ index") public ModelAndView index (params params) {params.setpageno (0); Params.SetPageSize (10); // Au début, seuls 10 éléments sont interrogés // appelant la liste des calques commerciaux <hashmap <string, objet >> blogs = blogService.findBlogs (params); // interroge le nombre de blogs longs coutblogs = blogService.CountBlogs (); ModelAndView ModelAndView = new ModelAndView (); ModelandView.AddObject ("Blogs", blogs); ModelAndView.AddObject ("Coutblogs", Coutblogs); ModelAndView.SetViewName ("index"); return ModelAndView; } / ** * Query de pagination pour la demande ajax * @param params * @return * / @ResponseBody @RequestMapping ("/ LoadData") public hashmap <string, objet> loadData (params params) {hashmap <string, objet> map = new hashmap <string, objet> (); List <hashmap <string, objet >> blogs = blogService.findBlogs (params); map.put ("blogs", blogs); carte de retour; }}Il existe deux classes d'entités ici, qui sont utilisées comme blog injecté pour la requête de base de données, et deux paramètres pour les paramètres de requête de pagination:
Définir les paramètres de données: Pageno (page suivante): est le nombre de pages actuelles * La quantité à afficher sur la page suivante PageSize (page suivante): la quantité qui a été interrogé (Pageno) + la quantité à afficher sur chaque page
Dans la base de données, il est wn <= pagesize et wn> pageno pour interroger les données de la page
Blog.java
package com.krry.entity; / ** * * utilisateur * @author krry * @version 1.0.0 * * / blog de classe publique {// ID de chaîne privée de clé primaire; // Titre du blog Titre de la chaîne privée; // Music auteur privé Musictitle de musique à chaîne privée; // Titre de musique Musictitle de chaîne privée; // Time de création Private String CreateTime; Blog public (String id, titre de chaîne, Musictor de String, String Musictle, String CreateEtime) {this.id = id; this.title = title; this.Musictor = Musictor; this.Musictle = musictitle; 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 music; } public void setMusictor (String Music) {this.musictor = musictor; } public String getMuSicTle () {return Musictle; } public void setMusictle (String Musictle) {this.musictitle = musictitle; } public String getCreateTime () {return CreateTime; } public void SetCreateTime (String CreateEtime) {this.createTime = CreateTime; }} Params.java
package com.krry.entity; / ** * * params * @author krry * @version 1.0.0 * * / public class params {private Integer pagesize = 0; entier privé Pageno = 0; public entier getpageno () {return pageno; } public void setpageno (entier pageno) {this.pageno = pageno; } public Integer getPageSize () {return pagesize; } public void setPageSize (entier pagesize) {this.pagesize = pagesize; }} index de page Web.jsp
<% @ Page Language = "Java" import = "java.util. *" Pageencoding = "utf-8"%> <% @ taglib uri = "http://java.sun.com/jsp/jstl/core" préfix = "c"%> <% String Path = request.getCon request.getscheme () + ": //" + request.getServerName () + ":" + request.getServerport () + path + "/"; pageContext.setAttribute ("BasEpath", baspath);%> <! DocType html> <html> <ead> <title> pagination </tame> <style> Body {Background: URL ("Resource / Images / 78788.jpg"); Background-Size: Cover;} .Titless {Font-Size: 34px; Text-Align: Center; Color: Black; margin-boot: 16px;} .ke_tabbox {min-height: 556px; largeth: 900px; background: # f9f9f9; margin; 0; rembourrage: 6px; position: relative;} .ke_tabbox .sendmy {text-align: Centre; Font-Family: "Microsoft Yahei"; taille de police: 28px; -Webkit-Text-Fill-Color: transparent; Contexte: -Webkit-gradient (linéaire, haut gauche, bas gauche, de (# fd8700), vers (# ff00b1)); -Webkit-Background-Clip: Texte; marge: 8px auto 0; ligne de ligne: 35px;} .ke_tabbox .ke_table {width: 100%; margin-top: 26px;} .ke_tabbox th {background: #ccc; Font-weight: Bold;} .ke_tabbox. ellipsis; bordure: 1px solide #fff; padding: 4px 12px; couleur: # 666; police-taille: 12px;} / * position: Absolute * / .tzpage {Font-Size: 12px; Position: Absolute; Top: 480px; Right: 0px;} #tbody tr: hover {background: #eaEa; .t_Mode {padding-right: 4px;} #tbody .t_avbiaoq: hover {colore: # ff6857; transition: .4s} #tbody .t_dele {padding-left: 4px;} .tzpage A {text-decoration: Aucun; Border: Aucun; Color: # 7d7d7d; background-Color: # f2f2f2; border-radius: 3px;} .tzpage a: hover {background: # dd5862; Color: #fff;} .tzpage a, .tzpage span {affiche: block; float: gauche; pading: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0em: 0eM 0.5em; marge-droite: 5px; marge-fond: 5px; min-large: 1em; texte-align: Centre; Line-Height: 22px; Height: 22px;} .tzpage .Current {Background: # dd5862; Color: #fff; border: Aucun; Border-Radius: 3px;} .tzpage .current.prev, .tzpage. .Current.next {Color: # 999; Border: 1Px solide # e5e5e5; arrière-plan: #fff;} .tm_psize_go {margin-droite: 4px; float: gauche; hauteur: 24px; line-height: 33px; position: relatif; bordure: 1px solide # e5e5e5; couleur: # 999} #tm_pagego {border-radius: 3px; hauteur: 18px; largeur: 30px; float: gauche; texte-align: centre; bordure: 1px solide # e5e5e5; line-height: 22px; couleur: # 999} .SortDesc {border-top: 5px; solide; largeur: 0px; hauteur: 0px; affichage: bloc en ligne; aligne verticale: milieu; bordure droite: 5px solide transparent; border-left: 5px solide transparent; marge-left: 5px;} .sortasc {border-boot: 5px solide: 5px;}. solide; largeur: 0px; hauteur: 0px; affichage: bloc en ligne; aligne verticale: milieu; bordure-droite: 5px solide transparent; border-left: 5px solide transparent; marge-left: 5px;} .red {couleur: rouge} .green {couleur: vert} .Hideadd {hauteur: 300px; Texte-aligne: Centre; hauteur de ligne: 300px; marge: 16px; Affichage: Aucun;} .hideadd a {Font-Size: 28px; -webkit-text-fill-Color: transparent; arrière-plan: -webkit-gradient (linéaire, haut gauche, bas gauche, de (# fd0051), à (# a22c93)); - webkit-background-clip: text;} </pyle> Affichage </p> <b Sweet> <Thead> <Tr> <Th> Title </ Th> <Th> Music Man </th> <Th> Titre de la musique </th> <Th> Time publié </th> </tr> </ thead> <tBody ID = "TBODY" Data-ItemCount = "$ {coutblogs}"> <C: Foreach Var = "Blog" Itemments = "$ {Blogs}"> <C: Foreach var = "Blog" <td> <a> $ {blog.title} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <td> <a> $ {blog.musictor} </a> </ td> <td> <a> $ {blog.musictle} </a> </ td> <a> $ {blog.musictle} </a> </td> <a> $ {blog.musictle} </a> </td> <a> <Td> $ {blog.createtime} </td> </tr> </c: foreach> </ tbody> </pally> <div id = "krrypage"> </div> </ div> <script type = "text / javascript" src = "$ {basepath}> </ script> type = "text / javascript" src = "$ {basepath} /resource/js/krry_page.js"> </ script> <script type = "text / javascrip $ ("# krrypage"). tzPage (itemCount, {num_display_entries: 5, // num des pages principales num_edge_entries: 4, // num of edge pages current_page: 0, // spécifiez le numéro de page sélectionné iteles_per_page: 10, // combien de prov_xte ShowSelect: false, rappel: fonction (pageno, psize) {// deux paramètres seront remis en arrière. }, // Définir les paramètres de données: Pageno (page suivante): le nombre de pages à afficher dans la page suivante * Le nombre de pages à afficher dans la page suivante // Pages de pages (page suivante): le nombre de pages (Pageno) + le nombre de pages à afficher dans chaque page // dans la base de données, il s'agit de pages <= pagesize LoadData: fonction (pageno, pagesize) {pageno = pageno * pagesize; pagesize = pageno + 10; $ .ajax ({type: "post", URL: BasEpath + "/ LoadData", Data: {Pageno: Pageno, PageSize: PageSize}, Success: Function (Data) {if (data) {var html = ""; var blogarr = data.blogs; pour (var i = 0, len = blogarr. Blogarr [i]; title = '"+ json.name +"'> "+ json.musictor +" </a> </td> "+" <td> <a class = 't_avbiaoq' title = '"+ json.musictle +"'> "+ json.musictitle +" </a> </td> "+" <td> "+ json.createTile temps "</ tr>";} $ ("# tbody"). html (html);}}}); }}; krryadminblog.initpage ($ ("# tbody"). data ("itemCount")); </cript> </ body> </html>Rendages de pagination:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.