提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
项目搭建学习记录用.
TIPS:springboot版本最好为2.5.2。之前2.6.5注入的时候启动失败,避一下雷!
pagehelper依赖
<!-- pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
yml配置
# 分页插件设置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
用法示例
@PostMapping("/list")
public AjaxResult selectWeaponAtlasList(WeaponAtlas weaponAtlas, Integer pageNum,Integer pageSize){
// 分页
PageHelper.startPage(pageNum,pageSize);
// weaponAtlasService.selectWeaponAtlasList(weaponAtlas))是mapper的正常查询语句
// AjaxResult 是自己封装的返回类,和分页没有关系
return AjaxResult.success(new PageInfo<WeaponAtlas>(weaponAtlasService.selectWeaponAtlasList(weaponAtlas)));
}}
示例结果
{
“data”: {
“total”: 131,
“list”: [
{
“id”: 4,
“name”: “波乱月白经津”,
“starLevel”: “1”,
“type”: 0,
“baseAttack”: 608,
“secondAttribute”: “暴击伤害:55.1%”,
“description”: “一把坚韧的大剑”,
“refine”: null,
“avatar”: null
},
{
“id”: 5,
“name”: “证誓之明瞳”,
“starLevel”: “0”,
“type”: 4,
“baseAttack”: 608,
“secondAttribute”: “暴击伤害:55.1%”,
“description”: “一把坚韧的大剑”,
“refine”: null,
“avatar”: null
}
],
“pageNum”: 1,
“pageSize”: 2,
“size”: 2,
“startRow”: 1,
“endRow”: 2,
“pages”: 66,
“prePage”: 0,
“nextPage”: 2,
“isFirstPage”: true,
“isLastPage”: false,
“hasPreviousPage”: false,
“hasNextPage”: true,
“navigatePages”: 8,
“navigatepageNums”: [
1,
2,
3,
4,
5,
6,
7,
8
],
“navigateFirstPage”: 1,
“navigateLastPage”: 8
},
“meta”: {
“msg”: “操作成功”,
“status”: 200
}
}
总结
pagehelper主要有两个类来实现分页,PageHelper和PageInfo。
PageHelper的startPage(pageNum,pageSize)方法用于分页,参数第一个为页数,第二个为一页的大小
PageInfo的作用类似于一个含有一个容器属性的类(可以自行查看),把自己查出的集合用构造方法写进去。返回他自己定义的属性加上你的集合。不使用这个就直接返回自己的集合。