一、配置pom
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
二、配置文件application
# 这里用的是application.yml
pagehelper:
# 指定数据库,不指定的话会默认自动检测数据库类型
# 目前支持:Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL
helper-dialect: mysql
# 用于从对象中根据属性名取值,
# 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值,
# 默认值为 pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
params: count=countSql
# 是否启用分页合理化。
# 如果启用,当pagenum<1时,会自动查询第一页的数据,当pagenum>pages时,自动查询最后一页数据;
# 不启用的,以上两种情况都会返回空数据
reasonable: true
# 默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
support-methods-arguments: true
三、编写代码样例
// serviceImpl
@Override
public List<user> queryAllByPage(int pageNum, int pageSize) {
//关键
PageHelper.startPage(pageNum,pageSize);
return userMapper.selectAll();
}
// service
List<user> queryAllByPage(int pageNum, int pageSize);
// controller
@GetMapping(value = "/api/user/queryAllByPage")
public HashMap<String,Object> queryAllByPage(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,@RequestParam(value = "pageSize",defaultValue = "15") int pageSize){
HashMap<String, Object> map = new HashMap<>();
List<user> usersList = userService.queryAllByPage(pageNum,pageSize);
map.put("results",usersList);
return map;
}