springboot项目中分页查询的完整代码
时间: 2023-11-16 20:47:32 浏览: 74
以下是一个简单的Spring Boot项目中使用分页查询的完整代码示例:
1. 首先,在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
2. 创建一个实体类(例如,Student),并使用@javax.persistence.Entity和@javax.persistence.Id注释它的主键。此外,您还需要创建一个Repository接口(例如,StudentRepository),该接口扩展自JpaRepository,并使用@org.springframework.stereotype.Repository注释。
```java
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
// Getters and Setters
}
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
}
```
3. 在控制器中注入StudentRepository,并创建一个分页查询的GET端点。通过使用org.springframework.data.domain.Pageable接口作为参数,可以轻松地实现分页查询。此外,您还可以使用org.springframework.data.domain.Sort接口指定排序顺序。
```java
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentRepository studentRepository;
@GetMapping
public Page<Student> getStudents(Pageable pageable) {
return studentRepository.findAll(pageable);
}
@GetMapping("/sorted")
public Page<Student> getStudentsSortedByName(Pageable pageable) {
return studentRepository.findAll(pageable.sortBy("name"));
}
}
```
4. 在应用程序的application.properties文件中,您可以配置默认的分页大小和排序顺序。例如:
```properties
spring.data.web.pageable.default-page-size=10
spring.data.web.pageable.max-page-size=100
spring.data.web.sort.default-order=desc
```
现在您可以启动应用程序并访问GET端点以执行分页查询。例如,使用curl命令访问GET /students:
```
curl http://localhost:8080/students
```
这将返回一个JSON格式的响应,其中包含分页信息和学生列表。您还可以添加查询参数(例如,page、size和sort)来指定分页大小、页码、排序顺序等。
阅读全文