激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

    延伸 · 閱讀

    精彩推薦
    主站蜘蛛池模板: 一级黄色在线观看 | 日韩激情一区二区三区 | 午夜丰满少妇高清毛片1000部 | 国产91精品久久久 | 密室逃脱第一季免费观看完整在线 | 国产羞羞视频免费在线观看 | 欧美日韩免费在线观看视频 | 亚洲成人伊人 | 亚洲国产高清视频 | 亚洲欧美在线看 | 成人一级毛片 | 操嫩草 | 久久精品超碰 | 国产精品久久久久久久久久iiiii | 国产免费一区二区三区网站免费 | 免费高潮在线国 | 国产成人在线视频 | 日韩精品一区二区免费视频 | 天天色综合2 | 国产精品999在线观看 | 久草在线观看福利视频 | 日本在线视频免费观看 | 成年免费网站 | 成年人小视频在线观看 | 国产亚洲综合一区二区 | 亚洲码无人客一区二区三区 | 手机黄色小视频 | 亚洲影院一区 | 天天都色视频 | 成人一区二区三区在线 | av日韩一区二区三区 | 国产成人精品视频在线 | 成人不卡免费视频 | 毛片在线免费观看网址 | 精品一区二区在线观看 | 免费一级特黄毛片视频 | 美国av片在线观看 | 亚洲男人的天堂在线视频 | 多男操一女视频 | omofun 动漫在线观看 | av在线免费电影 |