在Spring Boot中使用Spring-data-jpa实现分页查询

下面是在Spring Boot中使用Spring-data-jpa实现分页查询的完整攻略。

步骤一:添加依赖

pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

步骤二:配置数据源

application.properties文件中添加以下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/example_db
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create

步骤三:创建实体类

创建一个实体类User,代码如下:

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private Integer age;

    // getters and setters
}

步骤四:创建Repository

创建一个RepositoryUserRepository,代码如下:

public interface UserRepository extends JpaRepository<User, Long> {
}

步骤五:实现分页查询

在Controller中注入UserRepository,通过调用findAll(Pageable pageable)方法实现分页查询:

@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users")
    public List<User> getUsers(@RequestParam(defaultValue = "0") Integer pageNo,
                               @RequestParam(defaultValue = "10") Integer pageSize,
                               @RequestParam(defaultValue = "id") String sortBy) {
        Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.by(sortBy));
        Page<User> result = userRepository.findAll(pageable);
        return result.getContent();
    }
}

其中,PageRequest.of()方法用于创建一个Pageable对象,方法参数依次为:当前页码、每页显示数量、排序规则。

示例一:基础分页查询

访问/users?pageNo=0&pageSize=3&sortBy=id,表示查询第一页,每页显示3条记录,按照ID升序排序。

[
    {
        "id": 1,
        "name": "张三",
        "age": 18
    },
    {
        "id": 2,
        "name": "李四",
        "age": 20
    },
    {
        "id": 3,
        "name": "王五",
        "age": 22
    }
]

示例二:分页查询加条件筛选

UserRepository中添加方法findByNameContaining(String name, Pageable pageable),用于根据姓名模糊查询用户:

public interface UserRepository extends JpaRepository<User, Long> {
    Page<User> findByNameContaining(String name, Pageable pageable);
}

UserController中添加方法getUsersByName(),代码如下:

@GetMapping("/usersByName")
public List<User> getUsersByName(@RequestParam(defaultValue = "0") Integer pageNo,
                                 @RequestParam(defaultValue = "10") Integer pageSize,
                                 @RequestParam("name") String name) {
    Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.by("id").ascending());
    Page<User> result = userRepository.findByNameContaining(name, pageable);
    return result.getContent();
}

访问/usersByName?name=张&pageNo=0&pageSize=3,表示查询姓名带有“张”字的用户,第一页,每页显示3条记录。

[
    {
        "id": 1,
        "name": "张三",
        "age": 18
    },
    {
        "id": 4,
        "name": "张飞",
        "age": 25
    },
    {
        "id": 6,
        "name": "张无忌",
        "age": 30
    }
]

至此,就完成了在Spring Boot中使用Spring-data-jpa实现分页查询的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Spring Boot中使用Spring-data-jpa实现分页查询 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 一篇文章解决Java异常处理

    一篇文章解决Java异常处理的完整攻略 Java是一种面向对象的编程语言,设计初衷之一就是为了减轻程序员的负担,让程序员能够更好地管理代码和实现业务逻辑。然而,即便Java已经尽力省略了一些开发工作量,但仍有许多棘手的问题需要程序员自己去解决。其中一个常见的问题就是异常处理。 什么是Java异常? 异常是Java语言的对象,它表示在程序运行期间发生的不正常情…

    Java 2023年5月26日
    00
  • Hibernate save() saveorupdate()的用法第1/2页

    Hibernate save() 和 saveOrUpdate() 方法 save() 和 saveOrUpdate() 方法是 Hibernate 中常用的操作数据的方法之一,两种方法都可以用来保存一个对象到数据库中。它们的不同之处在于在不同的情况下它们的行为表现不同。 save() 方法 当给定一个新的对象时,使用 save() 方法将该对象保存到数据库…

    Java 2023年6月15日
    00
  • 详解在java中进行日期时间比较的4种方法

    关于在Java中进行日期时间比较的4种方法,这里为您详细讲解。 1. 使用Date类进行日期时间比较 Java中常用的日期时间比较方法之一就是使用Date类。Date类的compareTo方法可以比较两个日期的先后顺序。具体使用方法如下: Date date1 = new Date(); Date date2 = new Date(); if(date1.c…

    Java 2023年5月20日
    00
  • 用javascript实现的支持lrc歌词的播放器

    下面是实现“用javascript实现的支持lrc歌词的播放器”的完整攻略和示例说明。 1. 资源准备 首先需要准备好播放器所需的资源,包括音频文件和lrc歌词文件。这里以一首名为《夜空中最亮的星》的音乐和其对应的歌词文件为例。将音频文件和歌词文件放到项目的目录下,命名为“audio.mp3”和“audio.lrc”,并将代码中对应的路径修改为相对路径。 2…

    Java 2023年6月15日
    00
  • maven springboot如何将jar包打包到指定目录

    以下是 Maven Spring Boot 如何将 Jar 包打包到指定目录的攻略,步骤如下: 第一步:在 Maven pom.xml 文件中添加插件 首先需要在 pom.xml 文件中添加 maven-jar-plugin 插件,然后设置输出目录: <build> <plugins> <plugin> <group…

    Java 2023年5月19日
    00
  • 解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题

    当我们在开发Web应用程序时,通常会将Java源代码放置在WEB-INF/classes目录下以便编译。 但有时候,当我们发布Web应用程序到Tomcat容器中时,我们发现Web应用程序无法正常工作,这时我们可能需要解决一个经典的问题:Tomcat发布工程后,WEB-INF/classes下文件不编译的问题。 那么,如何解决这个问题呢?下面是具体的攻略: 检…

    Java 2023年5月26日
    00
  • java中jdk的下载和安装全过程

    1. 确定Java版本和下载地址 在下载和安装JDK之前,需要确定所需的Java版本以及下载该版本的JDK。可到Java官方网站(https://www.oracle.com/java/technologies/javase-downloads.html)下载。在该网站中,需要选择需要的Java版本,例如:Java SE 16 LTS,然后根据操作系统的不同…

    Java 2023年5月19日
    00
  • kafka topic 权限控制(设置删除权限)

    Kafka是一个分布式流处理平台,提供了强大的消息队列功能,它的漏洞和配置不良问题可能会导致未授权访问和数据泄露等问题。本篇攻略将详细介绍如何对Kafka Topic进行权限控制,并设置删除权限,帮助您避免可能的安全隐患。 准备工作 在开始本攻略之前,需要确保您已经完成以下准备工作: 安装Kafka。 创建一个Kafka集群。 熟悉Kafka Topic基本…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部