SpringBoot 整合JPA | PageHelper 的分页最简实现

JPA又自己的Pageable来帮助我们实现分页,Mybatis有PageHelper帮我们实现分页,下面直接贴代码。

1. 用JPA实现分页

1.1 pom添加依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

其实就是JPA的依赖。

1.2 核心实现
    /**
     * 查询全部
     */
    @Override
    public ServerResponse selectAll(Integer page,Integer size) {
        Pageable pageable = new PageRequest(page,size,Sort.Direction.DESC,"noticeId");
        Iterator<Notice> all = noticeRepostory.findAll(pageable).iterator();
        List<Notice> list = new ArrayList<Notice>();
        while (all.hasNext()){
           list.add(all.next());
        }
        if (all == null){
            return ServerResponse.createByErrorMessage("查询公告列表失败");
        }
        return ServerResponse.createBySuccess(list);
    }

更多详细的请看spring boot2 整合(二)JPA(特别完整!)中分页那部分。

2. 用Mybatis实现分页

2.1 pom依赖
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.0.0</version>
        </dependency>

2.2 核心代码
    /**
     * 查询消息列表
     *
     * @param userId
     */
    @Override
    public ServerResponse selectNewsList(Integer userId,Integer pageNum,Integer pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<News> news = newsMapper.selectNewsList(userId);
        PageInfo<News> appsPageInfo = new PageInfo<>(news);

        if (StringUtils.isEmpty(news)){
            return ServerResponse.createByErrorMessage("查询消息列表失败");
        }
        log.info("查询到的消息数目{}",appsPageInfo.getList());
        appsPageInfo.getList().forEach(p-> System.out.println(p.toString()));
        return ServerResponse.createBySuccess(appsPageInfo.getList());
    }

我们只需要PageHelper.startPage,然后紧跟着查询并返回一个list对象,然后用list对象创建一个PageInfo对象。

pageInfo有很多属性,比如当前页是多少,有没有下一页,数据一共多少等等,我这里调用它的getList方法来获取到news集合。

更多详细的请看spring boot2 整合(一)Mybatis (特别完整!)
中分页那部分。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,054评论 6 342
  • 与自己对话 当开始想写点东西的时候,还是会情不自禁的想拿起手机看看。没有想到,时间过得好快,如山河之水一去不返。这...
    现实主义鼻祖阅读 1,456评论 6 3
  • 5月9日星期三 小雨 今天是特种兵训练第3周第一天, 转眼二周就过去了。两周了老师教会我们成交的心法和技法 ...
    zy郑彦阅读 1,579评论 0 0