在Java中实现分页接口通常遵循以下步骤:
定义分页模型:
创建一个分页模型类,用于封装分页信息,如当前页码、每页大小、总记录数、总页数等。
public class PageModel {private List<?> list; // 结果集private int totalRecords; // 查询记录数private int pageSize; // 每页多少条数据private int pageNo; // 当前页码// getters and setters}
创建分页接口:
在Controller层定义一个接口方法,用于接收分页参数并返回分页结果。
@RestControllerpublic class UserController {@Autowiredprivate UserRepository userRepository;@GetMapping("/users")public PageModel getUsers(@RequestParam(defaultValue = "0") int pageNo, @RequestParam(defaultValue = "10") int pageSize) {Pageable pageable = PageRequest.of(pageNo, pageSize);PageuserPage = userRepository.findAll(pageable); PageModel pageModel = new PageModel();pageModel.setList(userPage.getContent());pageModel.setTotalRecords(userPage.getTotalElements());pageModel.setPageSize(pageSize);pageModel.setPageNo(pageNo);return pageModel;}}
实现分页查询:
在Repository层定义一个方法,使用JPA的`Pageable`接口执行分页查询。

@Repositorypublic interface UserRepository extends JpaRepository{ PagefindAll(Pageable pageable); }
处理分页结果:
在Service层处理分页结果,并将其封装到分页模型中返回。
@Servicepublic class UserService {@Autowiredprivate UserRepository userRepository;public PageModel getUsers(int pageNo, int pageSize) {Pageable pageable = PageRequest.of(pageNo, pageSize);PageuserPage = userRepository.findAll(pageable); return convertToPageModel(userPage);}private PageModel convertToPageModel(PageuserPage) { PageModel pageModel = new PageModel();pageModel.setList(userPage.getContent());pageModel.setTotalRecords(userPage.getTotalElements());pageModel.setPageSize(userPage.getSize());pageModel.setPageNo(userPage.getNumber());return pageModel;}}
前端调用:
使用Postman或其他工具发送GET请求到`/users`接口,并通过添加`pageNo`和`pageSize`参数来指定查询的页码和每页的数据量。
GET /users?pageNo=0&pageSize=10
以上步骤展示了如何实现一个简单的Java分页接口。请根据实际需求调整代码,并考虑添加错误处理和输入验证。
