Springboot 快速学会使用 JPA 分页查询

简介: Springboot 快速学会使用 JPA 分页查询

示例场景,将下面表数据分页查询出来:


image.png


简单模拟,


mapper:


    @Query(value="select * from user where id > (:id)",nativeQuery = true)
    Page<User> findById(@Param("id") Integer id, Pageable pageable);


service :


Page<User> findById( Integer id, Pageable pageable);


impl:


    @Override
    public Page<User> findById(Integer id, Pageable pageable) {
        return userMapper.findById(id,pageable);
    }

controller:


最好看看代码里面的注释,使用分页的参数要素


    @GetMapping("/getListPaging/{pageNum}")
    public String pageable(@PathVariable("pageNum") Integer pageNum) {
        //模拟每页条数
        int pageSize = 3;
        /**
         * Pageable是接口,PageRequest是接口实现
         * PageRequest的对象构造函数有多个
         * pageNum是页数,初始值是0(按照我们默认思维第一页应该是1,所以我们设置的页数为pageNum-1)
         * size是查询结果的条数
         * 后两个参数参考Sort对象的构造方法 第一个是代表排序方式,第二个是排序依据(下面代码例子,id实体类的主键,按照id排序)
         */
        Pageable pageable = new PageRequest(pageNum - 1, pageSize, Sort.Direction.ASC, "id");
        //模拟传入id值为2
        int id = 2;
        Page<User> pageList = userService.findById(id, pageable);
        System.out.println("总条数是:" + pageList.getTotalElements() + "\n" + "总页数是:" + pageList.getTotalPages() + "\n" + "每页条数是:" + pageSize);
        //将查询出来的数据转为list
        List<User> dataList = pageList.getContent();
        String jsonStr = JSON.toJSONString(dataList);
        System.out.println("当前为第" + pageNum + "页数据:" + "\n " + jsonStr);
        System.out.println("-------------------------------------------");
        //按照当前页数、分页大小,查出的分页结果集合
        for (User user : pageList.getContent()) {
            System.out.println(user.toString());
        }
        return jsonStr;
    }


调用接口,查看控制台:

http://localhost:8055/getListPaging/1      (第一页的数据)


image.png 


控制台:


image.png

相关文章
|
11天前
|
前端开发 Java API
SpringBoot整合Flowable【06】- 查询历史数据
本文介绍了Flowable工作流引擎中历史数据的查询与管理。首先回顾了流程变量的应用场景及其局限性,引出表单在灵活定制流程中的重要性。接着详细讲解了如何通过Flowable的历史服务API查询用户的历史绩效数据,包括启动流程、执行任务和查询历史记录的具体步骤,并展示了如何将查询结果封装为更易理解的对象返回。最后总结了Flowable提供的丰富API及其灵活性,为后续学习驳回功能做了铺垫。
23 0
SpringBoot整合Flowable【06】- 查询历史数据
|
4月前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
119 7
|
2月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
90 9
|
3月前
|
SQL Java 关系型数据库
Springboot引入jpa来管理数据库
Springboot引入jpa来管理数据库
84 0
Springboot引入jpa来管理数据库
|
3月前
|
SQL Java 数据库连接
springBoot+Jpa(hibernate)数据库基本操作
springBoot+Jpa(hibernate)数据库基本操作
93 0
|
3月前
|
自然语言处理 搜索推荐 Java
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(一)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图
74 0
|
3月前
|
存储 自然语言处理 搜索推荐
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(二)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(二)
60 0
|
4月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
|
5月前
|
Java 关系型数据库 MySQL
|
5月前
|
安全 Java 数据安全/隐私保护
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
本文介绍了一个基于SpringBoot、Spring Security和JPA开发的校园图书管理系统,包括系统的核心控制器`LoginController`的代码实现,该控制器处理用户登录、注销、密码更新、角色管理等功能,并提供了系统初始化测试数据的方法。
76 0
基于SpringBoot+Spring Security+Jpa的校园图书管理系统