一、pageHelper是什么?
PageHelper是mybatis框架的一个插件,用于支持在mybatis执行分页操作,使用非常方便.
二、使用步骤
1.maven引入相关依赖
代码如下(示例):
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
2.以下为返回的json格式
代码如下(示例):
{
"total": 12,
"list": [
{
"id": 1,
"createdate": "2022-04-02",
"title": "spring1",
"content": "测试测试",
"comment": 0,
"summary": "关于spring",
"viewcounts": 22,
"fabulous": 13,
"author": "admin"
},
],
"pageNum": 1,
"pageSize": 10,
"size": 10,
"startRow": 1,
"endRow": 10,
"pages": 2,
"prePage": 0,
"nextPage": 2,
"isFirstPage": true,
"isLastPage": false,
"hasPreviousPage": false,
"hasNextPage": true,
"navigatePages": 8,
"navigatepageNums": [
1,
2
],
"navigateFirstPage": 1,
"navigateLastPage": 2
}
3.接口
/**
*
* @param pageNum
* @param title
* @param model
* @return
*/
@RequestMapping("/userList")
public String list(String pageNum, String title, Model model) {
//title 用于做模糊查询用
List<Admin> list = null;
// pageNum:当前页,pageSize:每页的显示的数据数目
if (pageNum == null || pageNum.equals("")) {
//这里我是根据自己业务逻辑设置默认为一页6条数据
//第一个参数为pageNum,第二个参数为pageSize
PageHelper.startPage(1, 6);
} else {
PageHelper.startPage(Integer.valueOf(pageNum), 6);
}
//到数据库查询相关数据
list = loginService.findAll();
// 上面两行代码必须在一起,设置.startPage()方法后立即查询数据
PageInfo<Admin> pageInfo = new PageInfo<>(list);
// 获得分页后的数据信息,放到model域中
model.addAttribute("users", pageInfo);
//返回到前端页面
return "admin/member-list";
}
**PageHelper库中中有一个核心类PageInfo封装查询的list,包含了分页信息(结果总数,当前页,上一页,下一页,当前页的结果集),还有一个PageHelper类,在分页查询之前使用PageHelper.startPage(当前页,每一页的条数),完成分页查询操作调用自己的查询方法查询出的list对象封装到PageInfo中即可完成。
**
4.前端代码
前端使用的是thmeleaf进行数据渲染
member-list.html部分代码
<div class="page">
<div>
<a class="prev" th:href="@{'/admin/userList?pageNum='+${users.pageNum - 1}}"><<</a>
<a class="num" href="#" th:text="'当前是第 '+${users.pageNum}+'页'">当前是第一页</a>
<a class="num" href="#" th:text="'共'+${users.pages}+'页'">共10页</a>
<a class="num" href="#" th:text="'共'+${users.total}+'条'">共10条</a>
<a class="next" th:href="@{'/admin/userList?pageNum='+${users.pageNum + 1}}">>></a>
</div>
</div>
5.注意
springboot的版本与pagehelper的版本会冲突造成循环依赖的问题,建议springboot版本2.6以下
pagehelper版本1.x.x
我使用的是springboot2.5.5和pagehelper1.3.0