java查询数据数据实现分页

1.List数据实现手动分页

List数据实现手动分页
/**
     * List实现手动分页
     * @param list
     * @param pageNum
     * @param pageSize
     * @param <T>
     * @return
     */
    public static <T> List<T> paging(List<T> list, int pageNum, int pageSize){
        List<T> listSub = new ArrayList<>();
        int size = list.size();
        //先判断pageNum(使之page <= 0 与page==1返回结果相同)
        pageNum = pageNum <= 0 ? 1 : pageNum;
        pageSize = pageSize <= 0 ? 0 : pageSize;
        int pageStart = (pageNum - 1) * pageSize;//截取的开始位置 pageNum>=1
        int pageEnd = size < pageNum * pageSize ? size : pageNum * pageSize;//截取的结束位置
        if (size > pageNum) {
            listSub = list.subList(pageStart, pageEnd);
        }
        //防止pageSize出现<=0
        pageSize = pageSize <= 0 ? 1 : pageSize;
        //总页数
        int totalPage = list.size() / pageSize;
        return listSub;
    }

2.使用pagehelper实现查询分页

首先引用pagehelper依赖

<!--分页容易与mybatis-plus冲突,需要排除依赖-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
@Override
    public List<User> userPageList(User user) {
        // 开始分页
        PageHelper.startPage(user.getPageNum(),user.getPageSize());
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("name",user.getName());
        List<User> userList = userMapper.selectList(queryWrapper);
        //封装PageInfo对象返回
        PageInfo<User> pageInfo = new PageInfo<>(userList);
        int size = pageInfo.getSize();
        return userList;
    }