PageHelper 中的 Page
类
在 Java 开发中,PageHelper 是一个流行的分页插件,用于 MyBatis 或 MyBatis-Plus 中。Page
类用于封装分页结果的信息,包括当前页码、每页条数、总记录数、总页数等。
Page
类的主要属性和功能
- 页码(Page Number):当前页的页码。
- 每页大小(Page Size):每页显示的记录数。
- 总记录数(Total Records):查询结果的总记录数。
- 总页数(Total Pages):根据总记录数和每页大小计算出的总页数。
- 当前页的数据列表(List of Records):当前页的记录数据。
- 其他信息:如是否有下一页、是否有上一页等。
使用示例
以下是一个使用 PageHelper 进行分页查询的示例代码:
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class ExampleService {
private ExampleMapper exampleMapper;
public ExampleService(SqlSession sqlSession) {
this.exampleMapper = sqlSession.getMapper(ExampleMapper.class);
}
public PageInfo<Example> getExamplePage(int pageNum, int pageSize) {
// 开始分页
PageHelper.startPage(pageNum, pageSize);
// 执行查询
List<Example> exampleList = exampleMapper.selectExamples();
// 包装成 PageInfo 对象
return new PageInfo<>(exampleList);
}
}
在这个例子中:
PageHelper.startPage(pageNum, pageSize)
方法用于设置分页参数(页码和每页大小)。- 执行查询方法
selectExamples()
后,返回的数据会被 PageHelper 自动分页,并封装在PageInfo
对象中。 PageInfo
对象包含分页的详细信息,如当前页的数据列表、总记录数、总页数等。
PageHelper 的优点
- 简便易用:只需在查询之前调用
PageHelper.startPage()
方法即可自动分页。 - 性能优化:通过分页减小查询结果集的大小,提高查询性能和减少内存占用。
- 集成度高:PageHelper 可以与 MyBatis 或 MyBatis-Plus 无缝集成,支持多种复杂查询的分页。
PageHelper 的 Page
类和相关的分页机制提供了一种方便的方法来处理数据库查询的分页问题,有效提升开发效率和代码的可维护性。