因为大部分的数据都是可以通过自带的分页查询
但还是有部分数据是查询出来后再做处理的,所以使用不了物理分页,故需要使用逻辑分页
逻辑分页:就是把数据查询出来,再通过处理的出来的新的list再对该数据进行分页显示
1.下面是采用mybatis-plus的分页自带的分页工具
@Override
public PageUtils queryCustomerPage(TbUserQuery query) {
//用户分页显示 下面的list查询出来后再进行处理
List<AllUserListVo> queryAllUserPageListCount = new ArrayList<>();
//分页
List pageList = ListFormUtils.getPageList(queryAllUserPageListCount, query.getPage(), query.getLimit(),
queryAllUserPageListCount.size());
return new PageUtils(pageList, queryAllUserPageListCount.size(), query.getLimit(), query.getPage());
}
2.上面的逻辑分页方法getPageList 如下
/**
* 分页方法
*
* @param list
* 源数据
* @param currentPage
* 当前页
* @param maxNum
* 每页显示几条
* @param pageNum
* 总条数
* @return
*/
public static List getPageList(List list,int currentPage,int maxNum,int pageNum) {
int totalCount = list.size();
int pageCount;
int m = totalCount % maxNum;
if (m > 0) {
pageCount = totalCount / maxNum + 1;
} else {
pageCount = totalCount / maxNum;
}
int fromIndex = 0; // 从哪里开始截取
int toIndex = 0; // 截取几个
if (list == null || list.size() == 0)
return null;
// 当前页小于或等于总页数时执行
if (currentPage <= pageCount && currentPage != 0) {
fromIndex = (currentPage - 1) * maxNum;
if (currentPage == pageCount) {
toIndex = list.size();
} else {
toIndex = currentPage * maxNum;
}
}
return list.subList(fromIndex, toIndex);
}
再通过分页使用
得出来的就是正常的处理过后的分页
本文介绍了在无法使用物理分页的情况下,如何利用Mybatis-Plus进行逻辑分页处理。逻辑分页是先查询全部数据,然后对数据进行处理后再分页展示。文章提到了Mybatis-Plus自带的分页工具,并展示了具体的方法调用示例。
914

被折叠的 条评论
为什么被折叠?



