// 导入必要的包
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;
// 假设我们有一个实体类 User
public class User {
private Long id;
private String name;
private Integer age;
// getter 和 setter 方法
}
// 创建一个接口来继承 JpaRepository,这样我们可以使用内置的分页方法
public interface UserRepository extends JpaRepository<User, Long> {
}
// 在服务层实现分页查询
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
// 分页查询方法
public Page<User> getUsersByPage(int page, int size, String sortBy) {
// 创建 Pageable 对象,指定当前页、每页大小和排序字段
Pageable pageable = PageRequest.of(page, size, Sort.by(sortBy));
// 调用 repository 的 findAll 方法进行分页查询
return userRepository.findAll(pageable);
}
}
// 控制器层
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
// 处理 GET 请求,返回分页后的用户列表
@GetMapping("/paged")
public ResponseEntity<Page<User>> getUsersPaged(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "id") String sortBy) {
Page<User> pagedUsers = userService.getUsersByPage(page, size, sortBy);
return new ResponseEntity<>(pagedUsers, HttpStatus.OK);
}
}
Page
, PageRequest
, Pageable
和 Sort
。User
实体类,包含 id
, name
和 age
字段。JpaRepository
,提供了基本的 CRUD 操作以及分页查询功能。PageRequest.of
方法创建 Pageable
对象,并调用 userRepository.findAll(pageable)
进行分页查询。希望这个示例能帮助你理解如何在 Java 后端实现分页查询。
上一篇:java游戏编程
下一篇:java解析xml文件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站