分页插件使用及详解
全局映射文件的分页配置
<plugins>
<!--设置分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
分页插件依赖
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
使用PageHelper.startPage 返回的Page 底层实际上是一个ArrayList集合 所以可以用它存放查询数据
测试类
@Test
public void findAllEmpTest(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
//开启分页
Page<Object> page = PageHelper.startPage(2, 5);
List<Employee> allEmp = mapper.findAllEmp();
// 两个参数 一个是集合 一个是导航页码数
PageInfo<Employee> pageInfo =new PageInfo<>(allEmp,6);
System.out.println(pageInfo);
}
导航页码数:个人理解就是 页面下面展示的页码数 写 5 就代表是下面显示五个页面
分页相关数据详解
PageInfo{
pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,
list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30,
pages=8, reasonable=false, pageSizeZero=false},
prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true,
hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8,
navigatepageNums=[4, 5, 6, 7, 8]
}
pageNum:当前页的页码
pageSize:每页显示的条数
size:当前页显示的真实条数
total:总记录数
pages:总页数
prePage:上一页的页码
nextPage:下一页的页码
isFirstPage/isLastPage:是否为第一页/最后一页
hasPreviousPage/hasNextPage:是否存在上一页/下一页
navigatePages:导航分页的页码数
navigatepageNums:导航分页的页码,[1,2,3,4,5]