// 导入必要的包
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解析xml文件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站