springboot 写一个分页查询
时间: 2023-10-14 21:28:45 浏览: 89
springboot+mongodb 实现按日期分组分页查询功能
以下是一个使用Spring Boot实现分页查询的示例代码:
```java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/paged")
public ResponseEntity<Page<User>> getPagedUsers(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "id") String sortBy) {
Pageable paging = PageRequest.of(page, size, Sort.by(sortBy));
Page<User> pagedResult = userRepository.findAll(paging);
if(pagedResult.hasContent()) {
return new ResponseEntity<>(pagedResult, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
}
```
在上面的代码中,我们使用了Spring Boot的`Pageable`和`PageRequest`类来处理分页查询。我们还注入了一个名为`userRepository`的`UserRepository`实例,我们将使用它来执行实际的数据库查询。
在`getPagedUsers`方法中,我们使用`@RequestParam`注解来获取分页查询的参数。其中:
- `page`表示需要返回的页码,默认为0。
- `size`表示每页的数据条数,默认为10。
- `sortBy`表示按照哪个字段进行排序,默认为`id`。
我们使用这些参数来创建一个`Pageable`实例,并使用`userRepository.findAll(paging)`方法进行实际的查询。最后,我们将查询结果封装在`ResponseEntity`对象中返回给客户端。
需要注意的是,`Page`对象是一个带有元数据的结果集。如果查询结果为空,我们返回了一个HTTP 404响应。
这就是一个基本的使用Spring Boot实现分页查询的示例。
阅读全文