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;
    }
}

© 1987 - 2023 张晓刚 版权所有

浙ICP备16002143号-1