spring boot如何实现分页查询的功能
时间: 2023-11-07 14:05:40 浏览: 65
spring Boot查询数据分页显示的方法实例
Spring Boot提供了很多方式来实现分页查询的功能,以下是其中的两种方式:
1. 使用Spring Data JPA
使用Spring Data JPA可以很方便地实现分页查询的功能。Spring Data JPA提供了Pageable接口和Page类来支持分页查询。
首先,在Repository接口中定义一个方法,方法名以“findBy”开头,后面跟着要查询的属性名,然后再跟着Pageable类型的参数,如下所示:
```java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
Page<User> findByName(String name, Pageable pageable);
}
```
然后,在Controller中使用@GetMapping注解实现分页查询,如下所示:
```java
@GetMapping("/users")
public Page<User> getUsers(@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size) {
Pageable pageable = PageRequest.of(page, size);
return userRepository.findByName("张三", pageable);
}
```
其中,PageRequest.of()方法用于创建Pageable对象,第一个参数是页数,从0开始计数,第二个参数是每页显示的记录数。userRepository.findByName()方法用于查询数据并返回Page对象。
2. 使用MyBatis
使用MyBatis可以通过分页插件PageHelper来实现分页查询的功能。
首先,在pom.xml文件中添加PageHelper的依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
```
然后,在Mapper接口中定义一个方法,方法名以“findBy”开头,后面跟着要查询的属性名,然后再跟着Page类型的参数,如下所示:
```java
@Mapper
public interface UserMapper {
List<User> findByName(String name, Page page);
}
```
然后,在Controller中使用@GetMapping注解实现分页查询,如下所示:
```java
@GetMapping("/users")
public PageInfo<User> getUsers(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) {
Page page = PageHelper.startPage(pageNum, pageSize);
List<User> users = userMapper.findByName("张三", page);
return new PageInfo<>(users);
}
```
其中,PageHelper.startPage()方法用于创建Page对象并设置分页参数,第一个参数是页数,从1开始计数,第二个参数是每页显示的记录数。userMapper.findByName()方法用于查询数据并返回List对象。最后,使用PageInfo类来包装List对象并返回。
阅读全文