java如何分页
分页实现方法
在Java中实现分页功能通常涉及数据库查询和前端展示的结合。以下是几种常见的分页实现方式:
数据库分页查询
使用SQL语句的LIMIT和OFFSET(MySQL/PostgreSQL)或ROWNUM(Oracle)实现分页:
-- MySQL/PostgreSQL示例
SELECT * FROM table_name LIMIT pageSize OFFSET (pageNum - 1) * pageSize;
MyBatis分页插件
集成PageHelper等分页插件简化实现:
-
添加Maven依赖:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>最新版本</version> </dependency> -
在查询前调用分页方法:
PageHelper.startPage(pageNum, pageSize); List<User> users = userMapper.selectAll(); PageInfo<User> pageInfo = new PageInfo<>(users);
Spring Data JPA分页
使用Spring Data JPA的Pageable接口:
Page<User> users = userRepository.findAll(PageRequest.of(pageNum, pageSize));
手动内存分页
对已加载的集合进行分页处理:
List<User> pagedList = originalList.stream()
.skip((pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
分页参数传递
前端通常需要传递以下参数:
pageNum:当前页码pageSize:每页记录数total:总记录数(后端返回)
分页结果封装
通用分页响应对象示例:
public class PageResult<T> {
private Integer pageNum;
private Integer pageSize;
private Long total;
private List<T> list;
// getters/setters
}
实现分页时需注意性能优化,特别是大数据量表的分页查询建议使用索引优化。







