实现分页查询
Posted yyhgo_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现分页查询相关的知识,希望对你有一定的参考价值。
实现分页查询
一、分页要素与语法
分页要素:
1)页码 (PageIndex):要查询第几页的数据;
2)每页展示最大长度的数据 (PageSize):每页显示多少条数据。
语法:
二、例:博客系统文章列表页
2.1 原始前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>博客列表</title>
<link rel="stylesheet" href="css/list.css">
<link rel="stylesheet" href="css/blog_list.css">
<style>
.nav
position: fixed;
top: 0;
left: 0;
right: 0;
height: 50px;
.container
padding-top: 80px;
height: auto;
.container-right
width: auto;
.blog-pagnation-wrapper
height: 40px;
margin: 16px 0;
text-align: center;
.blog-pagnation-item
display: inline-block;
padding: 8px;
border: 1px solid #d0d0d5;
color: #333;
.blog-pagnation-item:hover
background: #4e4eeb;
color: #fff;
.blog-pagnation-item.actvie
background: #4e4eeb;
color: #fff;
</style>
</head>
<body>
<!-- 导航栏 -->
<div class="nav">
<img src="img/logo2.jpg" alt="">
<span class="title">我的博客系统</span>
<!-- 用来占据中间位置 -->
<span class="spacer"></span>
<a href="blog_list.html">主页</a>
<a href="blog_edit.html">写博客</a>
<a href="login.html">登陆</a>
<!-- <a href="#">注销</a> -->
</div>
<!-- 版心 -->
<div class="container">
<!-- 右侧内容详情 -->
<div class="container-right">
<!-- 每一篇博客包含标题, 摘要, 时间 -->
<div class="blog">
<div class="title">我的第一篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=1" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<div class="blog">
<div class="title">我的第二篇博客</div>
<div class="date">2021-06-02</div>
<div class="desc">
从今天起, 我要认真敲代码. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cum distinctio ullam eum ut
veroab laborum numquam tenetur est in dolorum a sint, assumenda adipisci similique quaerat vel.
Facere,
et.
</div>
<a href="blog_content.html?id=2" class="detail">查看全文 >></a>
</div>
<hr>
<div class="blog-pagnation-wrapper">
<button class="blog-pagnation-item">首页</button>
<button class="blog-pagnation-item">上一页</button>
<button class="blog-pagnation-item">下一页</button>
<button class="blog-pagnation-item">末页</button>
</div>
</div>
</div>
</body>
</html>
页面效果:
2.2 实现:查询分页数据
- 引入 jQuery
<!-- 引入 jquery -->
<script src="js/jquery.min.js"></script>
- 定义 pindex 和 psize
<script>
var pindex = 1; // 当前的页码 (默认)
var psize = 2; // 每页显示的条数信息 (默认)
</script>
- 定义 getURLParam(key) 方法
// 获取当前 URL 中某个参数的方法
function getURLParam(key)
var params = location.search;
if(params.indexOf("?") >= 0)
params = params.substring(1);
var paramArr = params.split('&');
for(var i=0;i<paramArr.length;i++)
var namevalues = paramArr[i].split("=");
if(namevalues[0]==key)
return namevalues[1];
else
return '';
- 初始化参数
// 初始化分页的参数,尝试从 url 中获取 pindex 和 psize
function initPageParam()
var pi = getURLParam("pindex");
if(pi!="")
pindex=pi;
var pz = getURLParam("psize");
if(pz!="")
psize=pz;
initPageParam();
- 查询分页数据
// 查询分页数据
function getList()
jQuery.ajax(
url:"/art/list",
type:"GET",
data:
"pindex":pindex,
"psize":psize
,
success:function(result)
if(result.code==200 && result.data!=null && result.data.length>0)
// 循环拼接数据到 document
var finalHtml="";
for(var i=0;i<result.data.length;i++)
var item = result.data[i];
finalHtml+='<div class="blog">';
finalHtml+='<div class="title">'+item.title+'</div>';
finalHtml+='<div class="date">'+item.createtime+'</div>';
finalHtml+='<div class="desc">'+item.content+'</div>';
finalHtml+='<a href="blog_content.html?id='+item.id+'" class="detail">查看全文</a>';
finalHtml+='</div>';
jQuery("#listDiv").html(finalHtml);
);
getList();
- 后端实现
@RequestMapping("/list")
public List<ArticleInfo> getList(Integer pindex, Integer psize)
if (pindex == null || psize == null)
return null;
// 分页公式,计算偏移量
int offset = (pindex - 1) * psize;
return articleService.getList(psize, offset);
public List<ArticleInfo> getList(Integer psize, Integer offset)
return articleMapper.getList(psize,offset);
public List<ArticleInfo> getList(@Param("psize") Integer psize,
java分页中怎么实现当本页面最后一条记录被删除,自动向上一个页面跳转