0
点赞
收藏
分享

微信扫一扫

Java List分页

witmy 2022-04-13 阅读 50
java

1,代码

法一:


import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * List分页工具类
 *
 */
public class PageUtil {

    /**
     * 对List进行分页
     *
     * @param list
     * @param pageNum
     * @param pageSize
     * @param <T>
     * @return PageInfo<T>
     */
    public static <T> PageInfo<T> startPage(List<T> list, Integer pageNum, Integer pageSize) {
        //创建Page类
        Page<T> page = new Page<>(pageNum, pageSize);
        //为Page类中的total属性赋值
        page.setTotal(list.size());
        //计算当前需要显示的数据下标起始值
        int startIndex = (pageNum - 1) * pageSize;
        int endIndex = Math.min(startIndex + pageSize, list.size());
        //从链表中截取需要显示的子链表,并加入到Page
        page.addAll(list.subList(startIndex, endIndex));
        //以Page创建PageInfo
        return page.toPageInfo();
    }

    /**
     * 对List进行分页
     *
     * @param list
     * @param pageNum
     * @param pageSize
     * @param size
     * @param <T>
     * @return PageInfo<T>
     */
    public static <T> PageInfo<T> startPage(List<T> list, Integer pageNum, Integer pageSize, Long size) {
        //创建Page类
        Page<T> page = new Page<>(pageNum, pageSize);
        //为Page类中的total属性赋值
        page.setTotal(size);
        // 添加数据
        page.addAll(list);
        //以Page创建PageInfo
        return page.toPageInfo();
    }
}

法二:


    /**
     * 分页查询管理员信息
     *
     * @param pageNum  num
     * @param pageSize size
     * @return 管理员分页数据
     */
    public PageInfo<AdminDTO> listAdmin(Integer pageNum, Integer pageSize) {
    //userDao.selectAdmin()不能直接放数据集,否则失效,必须为数据查询的函数,dao层查询
        Page<AdminDTO> page = PageHelper.startPage(pageNum, pageSize).doSelectPage(() -> userDao.selectAdmin());
        return new PageInfo<>(page);
    }
举报

相关推荐

0 条评论