MyBatis Plus List数据转Page
2023年09月23日
实际开发中,经常会使用到的会将 List<T> 数据 转换为 Mybatis Plus 的 Page<T>,可以参考如下工具类:
public class PageUtil {
public static Page<T> getPages(Integer pageNo, Integer pageSize, List list){
Page<T> page = new Page<T>();
int size = list.size();
if(pageSize > size){
pageSize = size;
}
// 求出最大页数,防止currentPage越界
int maxPage = size % pageSize == 0 ? size / pageSize : size / pageSize + 1;
if(pageNo > maxPage){
pageNo = maxPage;
}
// 当前页第一条数据下标
int currentIndex = pageNo > 1 ? (pageNo -1) * pageSize : 0;
List pageList = new ArrayList<>();
// 将当前页的数据放进pageList
for (int i = 0; i < pageSize && currentIndex + i < size; i++) {
pageList.add(list.get(currentIndex + i));
}
page.setCurrent(pageNo).setSize(pageSize).setTotal(list.size()).setRecords(pageList);
return page;
}
}