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

相关文章
|
3天前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
|
3月前
|
druid Java 关系型数据库
Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
|
28天前
|
安全 Java 数据安全/隐私保护
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
本文介绍了一个基于SpringBoot、Spring Security和JPA开发的校园图书管理系统,包括系统的核心控制器`LoginController`的代码实现,该控制器处理用户登录、注销、密码更新、角色管理等功能,并提供了系统初始化测试数据的方法。
30 0
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
|
30天前
|
Java 关系型数据库 MySQL
|
11天前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
20 0
|
21天前
|
存储 Java 数据库
|
21天前
|
存储 Java API
|
21天前
|
Java 数据库连接 数据库
Spring Data JPA 与 Hibernate 之区别
【8月更文挑战第21天】
11 0
|
2月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的武汉市公交路线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的武汉市公交路线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
2月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的城市公交在线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的城市公交在线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)