九、分页插件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 导航的页数