1、PageBean
PageBean实体类:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean <T>{
private Long total;//总条数
private List<T> items;//当前页数据集合
}
2、Controller
Controller类:
前端需要传入页码和每页数量。以PageBean类型返回。
3、Impl
具体实现:
调用PageHelper的startPage方法;根据条件查询数据库中所有的数据并保存到list中,将list强转为Page类型,调用Page类型的setTotal和setItems方法可以实现分页,最后返回PageBean。
@Override
public PageBean<Player> list(Integer pageNum, Integer pageSize, Integer categoryId,String name) {
//创建PageBean对象
PageBean<Player> pb = new PageBean<>();
//开启分页查询 pagehelper
PageHelper.startPage(pageNum,pageSize);
//调用mapper
Map<String,Object> map = ThreadLocalUtil.get();
Integer userId;
if(map != null){
userId = (Integer) map.get("id");
}else{
userId = null;
}
List<Player> as = playerMapper.list(userId,categoryId,name);
Page<Player> p = (Page<Player>) as;
//把数据填充到pagebean
pb.setTotal(p.getTotal());
pb.setItems(p.getResult());
return pb;
}