<!-- pageMelper坐标-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
//分页返回结果对象
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean <T>{
private Long total;//总条数
private List<T> items;//当前页数据集合
}
- 在controller的方法中需要传入两个参数(pageNum与pageSize)
public Result<PageBean<Article>> list(Integer pageNum,
Integer pageSize ,
@RequestParam(required = false) Integer categoryId,
@RequestParam(required = false)String state){
PageBean<Article> pageBean= articleService.list(pageNum,pageSize,categoryId,state);
return Result.success(pageBean);
}
- 在service的实现类里面完成相关代码
-
@Override
public PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state) {
//创建pageBean对象
PageBean<Article> pb = new PageBean<>();
//开启分页查询PageMelper
PageHelper.startPage(pageNum,pageSize);
//调用mapper
Map<String,Object> map=ThreadLocalUtil.get();
Integer id =(Integer) map.get("id");
List<Article> list= articleMapper.list(id,categoryId,state);
Page<Article> p = (Page<Article>) list;
//把数据填充到pagebean中
pb.setTotal(p.getTotal());
pb.setItems(p.getResult());
return pb;
}