PageHelper使用
依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
使用
//直接在集合前面加上
PageHelper.startPage(page,pageSize);
List<AdminUser> adminUsers = adminUserMapper.selectByExample(example);
分页形式返回数据
public class PagedGridResult {
private int page; // 当前页数
private long total; // 总记录数
private long records; // 总页数
private List<?> rows; // 每行显示的内容
//get/set.....
}
public PagedGridResult queryAdminList(Integer page, Integer pageSize) {
Example example = new Example(AdminUser.class);
example.orderBy("createdTime").desc();
PageHelper.startPage(page,pageSize);
List<AdminUser> adminUsers = adminUserMapper.selectByExample(example);
PagedGridResult pagedGridResult = setterPageGrid(adminUsers, page);
return pagedGridResult;
}
private PagedGridResult setterPageGrid(List<?> adminUserList,Integer page){
PageInfo<?> pageInfo = new PageInfo<>(adminUserList);
PagedGridResult pagedGridResult = new PagedGridResult();
pagedGridResult.setPage(page);
pagedGridResult.setTotal(pageInfo.getTotal());
pagedGridResult.setRecords(pageInfo.getPages());
pagedGridResult.setRows(adminUserList);
return pagedGridResult;
}
PageHelper查询逻辑
先看原生的查询sql
通过接口访问后,监控打印的sql
会输出两条sql,第一条先查询总量,第二天真实返回限制的结果集。
若想不执行查询总数的sql,可以
再一次通过接口查询: