九、分页插件PageHelper
1.什么是分页
当我们数据非常多的时候,我们可以选择把所有数据分成n份,有助于我们更好的展示数据。

2.引入依赖并配置
pomxml:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.1</version>
</dependency>
mybatis-config.xml:
typeAliases标签下面进行配置
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.编程程序展示效果
CarMapper接口:
List<Car> selectAll();
CarMapper.xml:
<select id="selectAll" resultType="car">
select *
from t_car
</select>
测试:
1)不使用分页插件:
@Test
public void selectAll() {
SqlSession sqlSession = SqlSessionUtil.openSqlSession();
CarMapper carMapper = sqlSession.getMapper(CarMapper.class);
List<Car> cars = carMapper.selectAll();
cars.forEach((car)->{
System.out.println(car);
});
sqlSession.close();
}
测试效果:
2)使用分页插件:
@Test
public void selectAll() {
SqlSession sqlSession = SqlSessionUtil.openSqlSession();
CarMapper mapper = sqlSession.getMapper(CarMapper.class);
int pageNum = 5;//页码
int pageSize = 3;//条数
PageHelper.startPage(pageNum, pageSize);
List<Car> cars = mapper.selectAll();
cars.forEach(car -> System.out.println(car));
//封装分页信息
PageInfo<Car> carPageInfo = new PageInfo<>(cars, 3);
System.out.println(carPageInfo);
sqlSession.close();
}
测试效果:

pageNum:当前展示页码
pageSize:每一页展示数据条数
PageInfo相关属性:
prePage 上一页的页码
nextPage 下一页的页码
isFirstPage 是否是第一页
isLastPage 是否是最后一页
hasPreviousPage 有没有上一页
hasNextPage 有没有下一页
navigatePages 导航栏的页数
navigateFirstPage 导航栏第一页的页数是1
navigateLastPage 导航栏最后一页的页数是3
navigatepageNums 导航的页数
文章介绍了如何使用PageHelper分页插件在数据量大时进行有效的数据展示。首先解释了分页的概念,然后详细说明了如何引入和配置PageHelper插件,包括在pom.xml添加依赖和在mybatis-config.xml中设置拦截器。接着,展示了在CarMapper接口和XML文件中如何编写查询语句,并通过测试代码对比了使用和不使用分页插件的区别,以及PageInfo对象提供的各种分页信息。
1589

被折叠的 条评论
为什么被折叠?



