Java Web implementa a função de paginação e compartilhe com todos, como segue:
Use Framework: SSM
Banco de dados: Oracle
Falando na consulta de paginação da Oracle é muito mais complicada que o MySQL. Vamos falar brevemente sobre isso aqui:
Consulte os dez primeiros dados:
Selecione * de (Selecione Rownum wn, rn.
A gramática é mais complicada.
Com o mesmo resultado, a sintaxe do MySQL é: ela pode ser resolvida com um limite.
Selecione ID, título, Create_time como CreateTime, Musictor, Musictitlefrom Krry_blog Ordem por create_time Desclimit 0,5
Não vou falar sobre a construção da estrutura do SSM. Eu o apresentei em detalhes no blog anterior. Aqui vou falar sobre a função de implementar a paginação da Web Java.
Use o plug -in JS: krry_page.js e jQuery
Camada de persistência do mapeador:
Blogmapper.java
pacote com.krry.mapper; importar java.util.hashmap; importar java.util.list; importar com.krry.entity.params;/** * * mapper: operar bancos de dados * @author krry * @version 1.0.0 * */interface public blogmapper {** ** ** ** ** * * * * * * * * * * * * * ** * Objeto >> findBlogs (params params); / ** * Calcule o número de blogs * com.krry.dao.admin * Nome do método: countblogs * @author krry * @param params * @return int * @exception * @since 1.0.0 */ public long contcBlogs (); } Blogmapper.xml
<? xml versão = "1.0" Encoding = "utf-8"?> <! Consulta de paginação Todas as informações do blog-> <select id = "findblogs" resultType = "java.util.hashmap" parameterType = "params"> selecione * de (selecione ROWNUM WN, rn. Wn> #{pageno} </leclect> <!-consulte o número de blogs-> <select id = "countblogs" resulttype = "long"> selecione count (*) de krry_blog </leclect> </mapper>Camada de negócios de serviço:
Classe de interface: iblogservice.java
pacote com.krry.service; importar java.util.hashmap; importar java.util.list; importar javax.servlet.http.httpServletReQuest; importação org.apache.ibatis.annotações.param; importar.krry.entity.blog; importity.krry.krry.krry.krry.notations.param; importar.krry.entity.blog; (Implementado em Impl) * @Author Asusaad * */Public Interface IblogService {/** * Consulta de paginação para todos os blogs * @param params * @return */list public <hashmap <string, object >> findBlogs (params params); / ** * Calcule o número de blogs * @param params * @return */ public Long CountBlogs (); } Classe de implementação Impl: blogservice.java
pacote com.krry.service.impl; importar java.util.hashmap; importar java.util.list; importar org.springframework.beans.factory.annotation.autowired; import org.springframework.steretype.service; import.springfringfringfristwork.webring.weType.service; import.springfringfringFringBrewB.WeBeBring.weType.service; com.krry.entity.params; importar com.krry.mapper.blogmapper; importar com.krry.service.iblogservice;/** * Implementando a interface da camada de serviço * @author asusaad * */ @ServicePublic Class blogservice IMPRESTIMENTO IBLOGSERVICE {@Autired /*** blog de consulta*/list public <hashmap <string, object >> findBlogs (params params) {// Lista de informações do blog de consulta <hashmap <string, object >> blog = blogmapper.findblogs (params); blog de retorno; } / ** * Calcule o número de blogs * @param params * @return * / public long countBlogs () {long coutblogs = blogmapper.countblogs (); retornar coutblogs; }}Camada de controle do controlador:
KrryController.java
pacote com.krry.controller; importar java.util.hashmap; importar java.util.list; importar org.springframework.beans.factory.annotation.autowired; importação org.springframework.sterotype.controller; import.springfringfringfringweB.web.web.web.web.web.web.webwe.; org.springframework.web.bind.annotation.Responsebody; importar org.springframework.web.servlet.modlandview; importar com.krry.entity.params; @AtraTaTroller * Controller.Krry.Service.iBlogSerd; // significa que é um padrão de vários casos, e a camada da web retornada por cada usuário é diferente da classe pública KrryController {@AUTOWIRED PRIVADO IBLOGSERVICE BLOGSERVICE; /*** página inicial e consulta de paginação* @return*/@requestMapping ("/index") public ModelAndView Index (params params) {params.setpageno (0); params.setPagesize (10); // No início, apenas 10 itens são consultados // chamando a lista de camadas de negócios <hashmap <string, object >> blogs = blogservice.findblogs (params); // consulta o número de blogs long coutblogs = blogservice.countblogs (); ModelAndView ModelAndView = new ModelAndView (); ModelAndView.adDobject ("Blogs", Blogs); ModelAndView.adDObject ("Coutblogs", CoutBlogs); ModelAndView.SetViewName ("Index"); retornar modelandview; }/** * Consulta de paginação para solicitação AJAX * @param params * @return */@ResponseBody @RequestMapping ("/loadData") public hashmap <string, object> loadData (params params) {hashmap <string, object> map = new Hashmap <string, object); List <hashmap <string, object >> blogs = blogservice.findblogs (params); map.put ("blogs", blogs); mapa de retorno; }}Existem duas classes de entidade aqui, que são usadas como o blog injetado para consulta de banco de dados e dois parâmetros para parâmetros de consulta de paginação:
Definir parâmetros de dados: Pageno (próxima página): é o número de páginas atuais* A quantidade a ser exibida na próxima página page PageSize (próxima página): a quantidade que foi consultada (pageno) + a quantidade a ser exibida em cada página
No banco de dados, é wn <= PageSize e wn> pageno para consultar dados da página
Blog.java
pacote com.krry.entity;/** * * usuário * @Author KRRY * @VERSION 1.0.0 * */public class Blog {// Primário Id de String Private String; // Título do blog Título de String Private; // Autor musical Private String Music Musictitle; // Music Title Private String Musictitle; // tempo de criação String private String CreateTime; blog público (string id, título da string, string musictor, string musictitle, string createTime) {this.id = id; this.title = title; this.musictor = musictor; this.musictitle = musictitle; this.createTime = createTime; } public string getId () {return id; } public void setId (string id) {this.id = id; } public string gettitle () {return título; } public void Settitle (título da string) {this.title = title; } public string getMusictor () {return music; } public void setMusictor (String Music) {this.musictor = musictor; } public string getMusictitle () {return musictitle; } public void setMusictitle (string musictitle) {this.musictitle = musictitle; } public string getCreateTime () {return createTime; } public void setCreateTime (string createTime) {this.createTime = createTime; }} Params.java
pacote com.krry.entity;/** * * params * @author krry * @version 1.0.0 * */public classe params {private integer pageSize = 0; Pageno inteiro privado = 0; public integer getpageno () {return pageno; } public void setPageno (número inteiro pageno) {this.pageno = pageno; } public integer getPagesize () {return pagageSize; } public void setPagesize (número inteiro pageSize) {this.pagesize = Pagesize; }} página da web index.jsp
<%@ Page Language = "java" import = "java.util. request.getscheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; pageContext.setAttribute ("BasEpath", Basepath);%> <! corpo {background: url ("Resource/Images/78788.jpg"); Size de fundo: capa;} .titless {font-size: 34px; text-align: Center; cor: preto; margin-bottom: 16px;} .ke_tabbox {min-hight: 556px; 0; preenchimento: 6px; posição: relativa;} .ke_tabbox .sendmy {text-align: Center; Fonte-família: "Microsoft Yahei"; Size de fonte: 28px; -webkit-text-color: transparente; Antecedentes: -Webkit gradiente (linear, superior esquerdo, inferior esquerdo, de (#fd8700), para (#ff00b1)); -webkit-background clip: text; margem: 8px Auto 0; altura da linha: 35px;} .ke_tabbox .ke_table {width: 100%; margin-top: 26px;} .ke_tabbox th {background: #ccc; font-weight: bold;} .ke_tabbox .ke_table td, thher elipsis; borda: 1px sólido #fff; preenchimento: 4px 12px; cor: #666; tamanho da fonte: 12px;} /*relacionado à paginação* / .tzpage {font-size: 12px; posição: absoluto; top: 480px; direita: 0px; ##tbody tr: hastbody; .t_mode {padding-right: 4px;} #tbody .t_avbiaoq: hover {color: #ff6857; transição: .4s} #tbody .t_dele {padding-left: 4px;} .tzpage A {Decoração de texto: nenhuma; borda: nenhuma; cor:#7d7d7d; cor de fundo:#f2f2f2; radio de borda: 3px;} .tzpage a: pairar {background:#dd5862; color: #ff;} .tzpage a, .tzpage span {dryla:; 0.5em; Margem-Right: 5px; Margin-Bottom: 5px; Min-Width: 1Em; Text-Align: Centre; Linha HELA: 22px; Altura: 22px;} .tzpage .Current {Background:#DD5862; Color: #fff; Border: None; Border-Radius: 3px; .Current.Next {Color:#999; Border: 1px Solid#E5E5E5; Antecedentes: #FFF;} .tm_psize_go {margem-right: 4px; float: esquerda; altura: 24px; line-hight: 33px; posição: relativa; borda: 1px#e5e5; #tm_pagego {radio de borda: 3px; altura: 18px; largura: 30px; float: esquerda; text-align: centro; borda: 1px sólido #e5e5e5; altura de linha: 22px; cor: #999} .sortdesc {border-top: 5px sólido; largura: 0px; altura: 0px; display: bloqueio em linha; alinhamento vertical: meio; direita da borda: 5px transparente sólido; esquerda na borda: 5px transparente sólido; margem-esquerda: 5px;} .Sortsc {borda-bottom: 5px Solid: 5px Solid sólido; largura: 0px; altura: 0px; display: bloqueio em linha; alinhamento vertical: médio; direita da borda: 5px transparente sólido; esquerda na borda: 5px transparente sólido; margem-left: 5px;}. Red {color: Red} .Green {color: verde}. Alinhamento de texto: centro; altura de linha: 300px; Margin-top: 16px; Exibir: Nenhum;} .HideAdd A {Size de fonte: 28px; -Webkit-text-color-color: transparente; fundo: -Webkit-gradiente (linear, parte superior esquerda, inferior <background) <#fd0051), para (#a2293); Exibir </p> <table> <thead> <tr> <th> título </th> <th> Music Man </th> <th> título de música </th> <th> Tempo publicado </th> </tr> </thead> <tbody id = "tbody" data-itemcount = "$ {coutblogs}"> <c: paraneach " <td> <a> $ {blog.title} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <a> <a> $ {blog.musict} <Td> $ {blog.createTime} </td> </tr> </c: foreach> </tbody> </table> <div id id = "krryPage"> </div> </div> <script type = "text/javascript" src = "$ {basepath} /js.js/js/jswery". type = "text/javascript" src = "$ {Basepath} /resource/js/krry_page.js"> </sCript> <script type = "text/javascript"> var basepath = "$ {basepath}"; </script> <script type = "text/javasss"> initpage: function (itemcount) {$ ("#krryPage"). Page ", Showgo: true, // Show ShowSelect: False, Retorno: Função (Pageno, Psize) {// Dois parâmetros serão transmitidos de volta. O primeiro é o número de páginas, e o segundo é o número de páginas a serem exibidas em cada página Krryadminblog.loaddata (pageno, psize);}); }, //Set data parameters: pageNo (next page): the number of pages to be displayed in the next page* The number of pages to be displayed in the next page//pageSize (next page): the number of queryed (pageNo) + the number of pages to be displayed in each page// In the database, it is WN <= pageSize and WN > pageNo to query the paged data loadData: function (pageno, Pagesize) {pageno = pageno * Pagesize; PageSize = Pageno + 10; $ .AJAX ({TIPO: "POST", URL: BASEPATH+"/LOUTDATA", Data: {Pageno: Pageno, PageSize: PageSize}, Sucesso: function (data) {if (dados) {var html = ""; vararr = data.blogs; blogarr [i]; title = '' "+json.name+" '> "+json.musictor+" </a> </td> "+" <td> <a class =' t_avbiaoq 'title =' "+json.musictle+" '> "+json.mustitle+" </a> </td> " "</tr>"; }}; krryadminblog.initpage ($ ("#tbody"). data ("itemCount")); </script> </body> </html>Renderizações de paginação:
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.