一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java ssm框架實現分頁功能的示例代碼(oracle)

java ssm框架實現分頁功能的示例代碼(oracle)

2021-04-13 13:40筱月 Java教程

這篇文章主要介紹了java ssm框架實現分頁功能的示例代碼(oracle),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

java web 實現分頁功能,分享給大家,具體如下:

使用框架:ssm

數據庫:oracle

話說 oracle 的分頁查詢比 mysql 復雜多了,在這里簡單談一下:

查詢 前十條數據:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT * FROM(
 SELECT ROWNUM WN,RN.* FROM (
  SELECT
   id,
   title,
   create_time as createTime,
   musictor,
   musictitle
  FROM
   krry_blog
  ORDER BY create_time desc
  )RN
 )WN
WHERE WN <= 10 AND WN > 0

語法較為復雜,

同樣的結果,mysql 的語法是:用一個 LIMIT 就可以解決。

?
1
2
3
4
5
6
7
8
9
10
SELECT
 id,
 title,
 create_time as createTime,
 musictor,
 musictitle
FROM
 krry_blog
 ORDER BY create_time desc
LIMIT 0,5

 SSM 框架的搭建,就不多說了,以前的博客有詳細介紹,這里就談談實現 java web 分頁的功能。

用到插件 js : krry_page.js,還有jQuery

mapper 持久層:

BlogMapper.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.krry.mapper;
import java.util.HashMap;
import java.util.List;
import com.krry.entity.Params;
 
/**
 *
 * Mapper:操作數據庫
 * @author krry
 * @version 1.0.0
 *
 */
public interface BlogMapper {
 
 /**
 * 查詢所有博客
 * @param params
 * @return
 */
 public List<HashMap<String, Object>> findBlogs(Params params);
 
 /**
 * 計算博客數量
 * com.krry.dao.admin
 * 方法名:countBlogs
 * @author krry
 * @param params
 * @return int
 * @exception
 * @since 1.0.0
 */
 public long countBlogs();
}

BlogMapper.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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">
<mapper namespace="com.krry.mapper.BlogMapper" >
 <!-- 分頁查詢所有的博客信息 -->
 <select id="findBlogs" resultType="java.util.HashMap" parameterType="Params">
 SELECT * FROM(
  SELECT ROWNUM WN,RN.* FROM (
  SELECT
   id,
   title,
   create_time as createTime,
   musictor,
   musictitle
  FROM
   krry_blog
  ORDER BY create_time desc
  )RN
 )WN
 WHERE WN &lt;= #{pageSize} AND WN &gt; #{pageNo}
 </select>
 
 <!-- 查詢博客數量 -->
 <select id="countBlogs" resultType="long">
 SELECT
  count(*)
 FROM
  krry_blog
 </select>
</mapper>

service業務層:

接口類:IBlogService.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
import com.krry.entity.Params;
/**
 * service層:處理業務邏輯(impl里面實現)
 * @author asusaad
 *
 */
public interface IBlogService {
 /**
 * 分頁查詢所有博客
 * @param params
 * @return
 */
 public List<HashMap<String, Object>> findBlogs(Params params);
 
 /**
 * 計算博客數量
 * @param params
 * @return
 */
 public long countBlogs();
}

impl 實現類:BlogService.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.krry.service.impl;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
import com.krry.entity.Params;
import com.krry.mapper.BlogMapper;
import com.krry.service.IBlogService;
/**
 * 實現service層接口
 * @author asusaad
 *
 */
@Service
public class BlogService implements IBlogService{
 @Autowired
 private BlogMapper blogMapper;
 
 /**
 * 查詢博客
 */
 public List<HashMap<String, Object>> findBlogs(Params params) {
 
 //查詢博客信息
 List<HashMap<String, Object>> blog = blogMapper.findBlogs(params);
 
 
 return blog;
 }
 
 /**
 * 計算博客數量
 * @param params
 * @return
 */
 public long countBlogs(){
  long coutBlogs = blogMapper.countBlogs();
 return coutBlogs;
 }
}

controller控制層:

KrryController.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.krry.controller;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.krry.entity.Params;
import com.krry.service.IBlogService;
/**
 * KrryController
 * controller層,作為請求轉發
 * @author asusaad
 *
 */
@Controller //表示是多例模式,每個用戶返回的web層是不一樣的
public class KrryController {
 @Autowired
 private IBlogService blogService;
 
 /**
 * 首頁,并且分頁查詢
 * @return
 */
 @RequestMapping("/index")
 public ModelAndView index(Params params){
 params.setPageNo(0);
 params.setPageSize(10); //一開始只查詢10條
 //調用業務層
 List<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");
 return modelAndView;
 }
 
 /**
 * 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);
 return map;
 }
}

這里要有兩個實體類,作為數據庫查詢的注入 Blog,還有分頁查詢的兩個參數 Params:

設置data參數:pageNo(下一頁):就是當前頁數 * 下一頁要顯示的數量
         pageSize(下一頁):已經查詢出來的數量(pageNo) + 每頁要顯示的數量

在數據庫中是 WN <= pageSize and WN > pageNo 來查詢分頁數據

Blog.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.krry.entity;
/**
 *
 * User
 * @author krry
 * @version 1.0.0
 *
 */
public class Blog {
 // 主鍵
 private String id;
 //博客標題
 private String title;
 //音樂作者
 private String musictor;
 //音樂標題
 private String musictitle;
 //創建時間
 private String createTime;
 public Blog(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 musictor;
 }
 
 public void setMusictor(String musictor) {
 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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.krry.entity;
/**
 *
 * Params
 * @author krry
 * @version 1.0.0
 *
 */
public class Params {
 private Integer pageSize = 0;
 private Integer 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;
 }
}

web 頁面 index.jsp

?

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        43
        44
        45
        46
        47
        48
        49
        50
        51
        52
        53
        54
        55
        56
        57
        58
        59
        60
        61
        62
        63
        64
        65
        66
        67
        68
        69
        70
        71
        72
        73
        74
        75
        76
        77
        78
        79
        80
        81
        82
        83
        84
        85
        86
        87
        88
        89
        90
        91
        92
        93
        94
        95
        96
        97
        98
        99
        100
        101
        102
        103
        104
        105
        106
        107
        108
        109
        110
        111
        112
        113
        114
        115
        116
        117
        118
        119
        120
        121
        122
        123
        124
        125
        126
        127
        128
        129
        130
        131
        132
        133
        134
        135
        136
        <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
        <%
        String path = request.getContextPath();
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
        pageContext.setAttribute("basePath", basePath);
        %>
         
        <!DOCTYPE HTML>
        <html>
         <head>
         <title>分頁</title>
         <style>
          body{background:url("resource/images/78788.jpg");background-size:cover;}
          .titless{font-size: 34px;text-align: center;color: black;margin-bottom: 16px;}
          .ke_tabbox{min-height:556px;width:900px;background:#f9f9f9;margin:20px auto 0;padding:6px;position:relative;}
           .ke_tabbox .sendMy{text-align: center;
             font-family: "微軟雅黑";
             font-size: 28px;
             -webkit-text-fill-color: transparent;
             background: -webkit-gradient(linear,left top,left bottom,from(#FD8700),to(#FF00B1));
             -webkit-background-clip: text;
             margin:8px auto 0;line-height: 35px;}
           .ke_tabbox .ke_table{width:100%;margin-top: 26px;}
           .ke_tabbox th{background:#ccc;font-weight:bold;}
           .ke_tabbox .ke_table td,th{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;border:1px solid #fff;padding:4px 12px;color:#666;font-size:12px;}
           /*分頁相關*/
           .tzPage{font-size: 12px;position: absolute;top: 480px;right: 0px;}
           
           #tbody tr:hover{background:#eaeaea;}
           #tbody .t_mode{padding-right:4px;}
           #tbody .t_avbiaoq:hover{color:#FF6857;transition:.4s}
           #tbody .t_dele{padding-left:4px;}
         
           .tzPage a{text-decoration:none;border:none;color:#7d7d7d;background-color:#f2f2f2;border-radius: 3px;}
           .tzPage a:hover{background:#dd5862;color:#FFF;}
           .tzPage a,.tzPage span{display:block;float:left;padding:0em 0.5em;margin-right:5px;margin-bottom:5px;min-width:1em;text-align:center;line-height: 22px;height: 22px;}
           .tzPage .current{background:#dd5862;color:#FFF;border:none;border-radius: 3px;}
           .tzPage .current.prev,.tzPage .current.next{color:#999;border:1px solid #e5e5e5;background:#fff;}
           .tm_psize_go{margin-right:4px;float:left;height:24px;line-height:33px;position:relative;border:1px solid #e5e5e5;color:#999}
           #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 solid;width:0px;height:0px;display:inline-block;vertical-align:middle;border-right:5px solid transparent;border-left:5px solid transparent;margin-left:5px;}
           .sortasc{border-bottom:5px 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;
             text-align: center;
             line-height: 300px;
             margin-top: 16px;display:none;}
           .hideAdd a{font-size:28px;-webkit-text-fill-color:transparent;background: -webkit-gradient(linear,left top,left bottom,from(#FD0051),to(#A22C93));-webkit-background-clip: text;}
         </style>
         </head>
         
         <body>
          <div class="ke_tabbox">
           <p class="titless">分頁展示</p>
          <table class="ke_table">
           <thead>
            <tr>
             <th style="width:25%">標題</th>
             <th style="width:25%">音樂人</th>
             <th style="width:30%">音樂標題</th>
             <th style="width:20%">發布時間</th>
            </tr>
           </thead>
           
           <tbody id="tbody" data-itemcount="${coutBlogs}">
            <c:forEach var="blog" items="${blogs}">
             <tr>
              <td><a class="t_avbiaoq" title="${blog.TITLE}">${blog.TITLE}</a></td>
              <td><a class="t_avbiaoq" title="${blog.MUSICTOR}">${blog.MUSICTOR}</a></td>
              <td><a class="t_avbiaoq" title="${blog.MUSICTITLE}">${blog.MUSICTITLE}</a></td>
              <td>${blog.CREATETIME}</td>
             </tr>
            </c:forEach>
           </tbody>
          </table>
          <div id="krryPage"></div>
         </div>
         <script type="text/javascript" src="${basePath}/resource/js/jquery-1.11.3.min.js"></script>
         <script type="text/javascript" src="${basePath}/resource/js/krry_page.js"></script>
         <script type="text/javascript">var basePath = "${basePath}";</script>
         <script type="text/javascript">
          
          var krryAdminBlog = {
           initPage:function(itemCount){
            $("#krryPage").tzPage(itemCount, {
             num_display_entries : 5, //主體頁數
             num_edge_entries : 4,//邊緣頁數
             current_page : 0,//指明選中頁碼
             items_per_page : 10, //每頁顯示多少條
             prev_text : "上一頁",
             next_text : "下一頁",
             showGo:true,//顯示
             showSelect:false,
             callback : function(pageNo, psize) {//會回傳兩個參數,第一個是當前頁數,第二個是每頁要顯示的數量
              krryAdminBlog.loadData(pageNo,psize);
             }
            });
           },
           //設置data參數:pageNo(下一頁):就是當前頁數 * 下一頁要顯示的數量
           //   pageSize(下一頁):已經查詢出來的數量(pageNo) + 每頁要顯示的數量
           //在數據庫中是 WN <= pageSize and WN > pageNo 來查詢分頁數據
           loadData:function(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;
               for(var i=0,len=blogArr.length;i < len;i++){
                var json = blogArr[i];
                html+= "<tr>"+
                " <td><a class='t_avbiaoq' id="codetool">

        分頁效果圖:

        java ssm框架實現分頁功能的示例代碼(oracle)

        以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

        原文鏈接:http://www.cnblogs.com/ainyi/p/8598217.html

        延伸 · 閱讀

        精彩推薦
        主站蜘蛛池模板: 日韩毛片基地一区二区三区 | 亚洲国产精品牛在线 | 大伊人青草狠狠久久 | 99久久综合精品免费 | 99热视频| 日本wwxx护士 | 亚洲 欧美 国产 在线 日韩 | 男人天堂资源网 | 国产高清亚洲 | 日本乱中文字幕系列在线观看 | 和老外3p爽粗大免费视频 | 男生操女生漫画 | 亚洲男人精品 | 欧美男男xxx激情做受 | 果冻传媒天美传媒乌鸦传媒 | 麻豆天美精东果冻传媒在线 | 18欧美同性videos可播放 | 91在线精品国产丝袜超清 | 欧美一级鲁丝片免费看 | 99久久精品免费看国产一区 | 久久久久久久久女黄 | 国产美女屁股直流白浆视频无遮挡 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产成人精品一区二三区在线观看 | 果冻传媒在线播放观看w | 国产欧美亚洲精品第一页青草 | 日本高清免费看 | 欧乱色国产精品兔费视频 | 美女扒下内裤让男人桶的图片 | 亚洲AV无码专区国产精品麻豆 | 久久人妻无码毛片A片麻豆 久久热这里只有 精品 | 欧美日韩国产亚洲人成 | 午夜香蕉成视频人网站高清版 | ady@ady9.映画网 | 亚洲激情欧美 | 亚洲乱亚洲乱妇41p国产成人 | 欧美一级艳片视频免费观看 | 日本偷拍xxxxxxww | 美女脱得一二净无内裤全身的照片 | chinese老头和老太交hd | 亚洲国产麻豆 |