Java Webはページング機能を実装し、次のようにすべての人と共有します。
フレームワークを使用:SSM
データベース:Oracle
Oracleのページネーションクエリといえば、MySQLよりもはるかに複雑です。ここで簡単に話しましょう:
最初の10のデータを照会します:
select * from(select rownum wn、rn。 * from(select d、title、create_time as createTime、musictor、musictitle by krry_blog order by create_time desc)rn)wnwhere wn <= 10およびwn> 0
文法はより複雑です。
同じ結果で、MySQLの構文は次のとおりです。制限で解決できます。
id、title、create_time as createTime、musictor、musictitlefrom krry_blog order by create_time desclimit 0,5を選択する
SSMフレームワークの構築については説明しません。前のブログで詳細に紹介しました。ここでは、Java Webページネーションの実装機能について説明します。
プラグインJS:krry_page.js、およびjqueryを使用します
マッパー持続層:
blogmapper.java
パッケージ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 {/** ** @pubram */ @querm * @querm * @querm */**リスト<hashmap <string、object >> findblogs(params params); / ** *ブログの数を計算 * com.krry.dao.admin *メソッド名:countblogs * @authorkrry * @param params * @return int * @exception * @since 1.0.0 */ public long countblogs(); } blogmapper.xml
<?xml version = "1.0" encoding = "utf-8"?> <!doctype mapper public " - // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"ページネーションクエリすべてのブログ情報 - > <id = "findblogs" resulttype = "java.util.hashmap" parametertype = "params"> select * from(select rownum wn、rn。 #{pagesize}およびwn>#{pageno} </select> <! - query of blogs-> <select id = "countblogs" resulttype = "long"> select count(*)from krry_blog </select> </mapper>サービスレイヤー:
インターフェイスクラス:iblogservice.java
パッケージcom.krry.service; import java.util.hashmap; import java.util.list; import javax.servlet.http.htttpservletrequest; Import org.apache.ibatis.annotations.annotations.param; import com.krry.entity.blog; Import com.krry g.krry.params; (emplに実装) * @author asusaad * */public interface iblogservice {/** *すべてのブログのページネーションクエリ * @return params */public list <hashmap <hashmap <string、object >> findblogs(params params); / ** *ブログの数を計算 * @param params * @return */ public long countblogs(); }実装クラス:blogservice.java
パッケージcom.krry.service.impl; import java.util.hashmap; Import java.util.list; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterteototye.service; import org.springframework.web.servelet.modebie com.krry.entity.params; import com.krry.mapper.blogmapper;インポートcom.krry.service.iblogservice;/** *サービスレイヤーインターフェイスの実装 * @author asusaad * */ @servicepublic class blogservice imblements iblogservice {@autowiredcimれblogmappermapper; /***クエリブログ*/public List <hashmap <string、object >> findblogs(params params){// query blog Information List <hashmap <hashmap <string、object >> blog = blogmapper.findblogs(params);ブログを返す; } / ** *ブログの数を計算 * @param params * @return * / public long countblogs(){long coutblogs = blogmapper.countblogs(); coutblogsを返します。 }}コントローラー制御レイヤー:
krrycontroller.java
パッケージcom.krry.controller; Import java.util.hashmap; Import java.util.list; import org.springframework.beans.actory.annotation.autowired; import org.springframework.stereotype.controller; Import org.springframework.web.bind.annotation org.springframework.web.bind.annotation.responsebody; import org.springframework.web.servlet.modelandview; Import com.krry.entity.params; import com.krry.service.service.iblogservice; //それがマルチケースパターンであり、各ユーザーが返すWebレイヤーは異なるパブリッククラスKrryController {@autowired private iblogservice blogserviceであることを意味します。 /***ホームページ、およびページネーションクエリ* @return*/@requestMapping( "/index")public modelandview index(params params){params.setpageno(0); params.setPagesize(10); //最初は10項目のみがクエリされています//ビジネスレイヤーリストを呼び出す<hashmap <string、object >> blogs = blogservice.findblogs(params); //ブログの数をクエリlong coutblogs = blogservice.countblogs(); ModelAndView ModelandView = new ModelAndView(); modelandview.addobject( "blogs"、blogs); modelandview.addobject( "coutblogs"、coutblogs); modelandview.setViewName( "index"); ModelandViewを返します。 }/** * ajax requestのページネーションクエリ * @param params * @return */ @responsebody @requestmapping( "/loaddata")public hashmap <string、object> loaddata(params params){hashmap <string、object> object> map = new hashmap <string、object> hashmap>();リスト<Hashmap <String、Object >> blogs = blogservice.findblogs(params); map.put( "blogs"、blogs);マップを返します。 }}ここには2つのエンティティクラスがあります。これらは、データベースクエリ用の注入ブログとして使用され、ページネーションクエリパラメーターの2つのパラメーターがあります。
データパラメーターの設定:pageno(次のページ):現在のページの数*次のページに表示される数量ページサイズ(次のページ):クエリされた数量(pageno) +各ページに表示される数量
データベースでは、ページデータをクエリするのはwn <= pagesizeおよびwn> pagenoです
blog.java
パッケージcom.krry.entity;/** * * user * @author krry * @version 1.0.0 * */public class blog {//プライマリキープライベート文字列id; //ブログタイトルプライベート文字列タイトル。 //音楽著者プライベートストリングミュージックMusictitle; //音楽タイトルプライベートストリングMusictitle; //作成時間プライベートストリングCreateTime;パブリックブログ(String ID、String Title、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 title; } public void settitle(string title){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
パッケージcom.krry.entity;/** * * params * @author krry * @version 1.0.0 * */public class params {private integer pagesize = 0;プライベート整数pageno = 0; public Integer getPageno(){pagenoを返します。 } public void setpageno(integer pageno){this.pageno = pageno; } public Integer getPagesize(){return pagesize; } public void setPagesize(integer pagesize){this.pagesize = pagesize; }} Webページindex.jsp
<%@ page Language = "Java" Import = "Java.util。*" PageEncoding = "UTF-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core"プレフィックス= "c"%> <%string path = request. request.getScheme()+"://"+request.getServername()+":"+request.getServerport()+path+"/"; pagecontext.setattribute( "basepath"、basepath); body {background:url( "resource/images/78788.jpg"); background-size:cover;} .titless {font-size:34px; text-align:center; color:black; black; black; 16px;} .ke_tabbox {min-height:556px; width:900px; wid; 0;パディング:6px; position:relative;} .ke_tabbox .sendmy {text-align:center;フォントファミリー:「Microsoft Yahei」;フォントサイズ:28px; -webkit-text-fill-color:透過;背景:-webkit -gradient(線形、左上、左下、(#fd8700)、(#ff00b1)まで); -webkit-background-clip:テキスト;マージン:8px auto 0; line-height:35px;} .ke_tabbox .ke_table {width:100%; margin-top:26px;} .ke_tabbox th {background:#ccc; font-weight:bold;}。 ellipsis; border:1px solid #fff; padding:4px 12px; color:#666; font-size:12px;} /*pagination関連* / .tzpage {font-size:12px; position:absolute; top:480px; right:0px;} .t_mode {padding-right:4px;} #tbody .t_avbiaoq:hover {color:#ff6857; transition:.4s} #tbody .t_dele {padding-left:4px;} .tzpage A {テキストデコレーション:なし;境界線:なし;色:#7d7d7d; background-color:#f2f2f2; border-radius:3px;} .tzpage a:hover {background:#dd5862; color:#fff;} .tzpage a、.tzpage span:{disply:block; 0.5em;マージン右:5px;マージンボトム:5px; min-width:1em; text-align:center-height:22px; height:22px;} .tzpage .current {current:#dd5862; color:#fff; border:none; border-radius:3px;} .current.next {color:#999; border:1px solid#e5e5e5; background:#fff;} .tm_psize_go {margin-right:4px; float:float:height; height:24px; line-height:33px; position:relative; border:1px solid#e5e5; color:#9999; #tm_pagego {border-radius:3px; height:18px; width:30px; float:left; text-align:center; border:1px solid#e5e5e5; line-height:22px; color:#999} .sortdesc {border-top:5pxソリッド;幅:0px;高さ:0px;ディスプレイ:インラインブロック;垂直アライイン:中央;境界線右:5px固体透明、境界左:5px固体透明、マージン左:5px;} .sortasc {border-bottom:5px solid solid;width:0px;height:0px;display:inline-block;vertical-align:middle;border-right:5px solid transparent;border-left:5px solid transparent;margin-left:5px;} .red{color:red} .green{color:green} .hideAdd{height: 300px;テキストアライグ:センター;ラインハイト:300px;マージントップ:16px;展示:なし:なし;} .hideadd a {font-size:28px; -webkit-text-fill-color:crondparent; background:-webkit-gradient(webkit-gradient(#fd0051)from(#a22c93));ディスプレイ</p> <table> <thead> <tr> <th>タイトル</th> <th>音楽マン</th> <th>音楽タイトル</th> <th>公開された時間</th> </tr> </tr> </thead> <tbody id = "todoy" data-itemcount = "$ {coutblogs}" <td> <a> $ {blog.title} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <td> <a> $ {blog.musictle} </a> <td> $ {blog.createtime} </td> </tr> </c:foreach> </tbody> </table> <div id = "krrypage"> </div> </div> <script = "text/javascript" src = "$ {basepath}/resurce/js/jquery-1.11.1.min type = "text/javascript" src = "$ {basepath}/resource/js/krry_page.js"> </script> <script = "text/javascript"> var basepath = "$ {basepath} $( "#krrypage")。tzpage(itemcount、{num_display_entries:5、// num num of main pages num_edge_entries:4、// num of edge pages current_page:0、//選択したページ番号項目項目項目項目項目_per_page:10、// showSelect:false、function(pageno、psize){// 2つのパラメーターは渡されます。 }、//データパラメーターの設定:pageno(次のページ):次のページに表示されるページの数*次のページに表示されるページ数//ページサイズ(次のページ):クエリ(pageno) +各ページに表示されるページ数//データベースのページ=ページ=ページ=ページとwn> pagenoのページとwn loaddata:function(pageno、pagesize){pageno = pageno * pagesize; pagesize = pageno + 10; $ .ajax({type: "post"、url:basepath+"/loaddata"、data:{pageno:pagenize:pagesize}、success:function(data){if(data){var html = ""; var blogarr = data.blogs; blogarr [i]; html+= "<tr>"+"<td> <'t_avbiaoq' title = '"+json.title+"'>"+json.title+"</a> </td>"+"<td> <a class = 't_a title = '"+json.name+"'> "+json.musictor+" </a> </td> "+" <td> <a class = 't_avbiaoq' title = '"+json.musictle+"'> "+json.musictitle+" </a> </td> "</tr>"; "#tbody")。 }}; krryadminblog.initpage($( "#tbody")。data( "itemcount")); </script> </body> </html>ページネーションレンダリング:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。