注:项目中需要用到分页功能,经过多方学习,整理出最便捷有效的方法,亲测有效
1. 引入依赖
<!-- 分页插件pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 分页插件pagehelper -->
2. 配置文件 二选一
配置application.properties 文件
#配置分页插件pagehelper
pagehelperpagehelper.helperDialect= mysql
pagehelper.reasonable= true
pagehelper.supportMethodsArguments= true
pagehelper.params= count=countSql
配置application.yml文件
注意: pagehelper 是一级根目录 helperDialect 是子级
#配置分页插件pagehelper
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: trueparams: count=countSql
3. 定义 PageResult 对象
注意:@Data需要下载lombok插件,或者换成 get set
import lombok.Data;
import lombok.Data;import java.io.Serializable;
import java.util.List;
@Data
public class PageResult implements Serializable {
private Integer current;//页数
private Integer size;//条数
private Long total;//总记录数
private List result;//当前页面结果
public PageResult(Long total, List result) {
this.total = total; this.result = result;
}
}
4. 分页功能源码
Controller层
@PostMapping("/get")
public ReqResult getUsers(PageResult page) {
return ReqResult.success(userService.getUsers(page));
}
Service层
PageResult getUsers(PageResult page);
ServiceImpl层
@Override
public PageResult getUsers(PageResult page) {
PageHelper.startPage( page.getCurrent(), page.getSize());
Page<User> users= ( Page<User>) userMapper.getUsers();
return new PageResult(users.getTotal(), users.getResult());
}
Mapper层
List<User> getUsers();
Postman测试 size:每页条数 current :第几页(从0 或者 1 开始都 记为第一页)
[
{
"key":"size","value":"10",
"type":"current","value":1
}
]