分页代码在spring boot中的使用
使用思路:PageHelper.startPage(1 , 10);表示分页页展示,每10个数据为一页。
查询所有要展示的数据,装入到集合对象中。再将集合对象装入分页对象中,根据设置的分页数据,进行分页,最后利用分页工具返回分页对象。
分页工具
public final class PageUtils {
private PageUtils() {}
/**
* 将 Mybatis Pagehelper 的 PageInfo 对象转换为 Spring Data Page 对象
*
* @param pageInfo Pagehelper PageInfo 对象
* @param <T> 泛型
* @return Spring Data Page 对象
*/
public static <T> Page<T> convertToPage(PageInfo<T> pageInfo) {
Pageable pageable = PageRequest.of(pageInfo.getPageNum() - 1,
pageInfo.getSize());
return new PageImpl<>(pageInfo.getList(), pageable, pageInfo.getTotal());
}
}
实现类编写
//分页查询
@Override
public OperateResult<Page<UserDemo>> queryByPage() {
PageHelper.startPage(1 , 10);
List<UserDemo> userDemos = userDemoMapper.selectAll();
PageInfo<UserDemo> pageInfo = new PageInfo<UserDemo>(userDemos);
log.debug("总记录数:{},总页数:{},当前页:{},每页记录数:{}",
pageInfo.getTotal(), pageInfo.getPages(),
pageInfo.getPageNum(), pageInfo.getPageSize());
return OperateResult.ok(PageUtils.convertToPage(pageInfo));
}