PageHelper插件使用
1.pom.xml引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
2.mybatis-config.xml配置分页插件
在 MyBatis 的配置文件中添加 PageHelper 的插件:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
注意:
com.github.pagehelper.PageInterceptor
是 PageHelper 插件的名称,helperDialect
属性用于指定数据库类型(支持多种数据库)
3.分页插件使用
在查询方法中使用分页:
@Test
@Test
public void testPage(){
SqlSession sqlSession = sqlSessionUtil.getSqlSession();
EmpMapper mapper = sqlSession.getMapper( EmpMapper.class);
//TODO:注意不能将两条及以上查询语句加到分页区
//查诲功能之前开启分页功能
Page<object> page = PageHelper.startPage( pageNum: 1,pageSize: 4);
List<Emp> list = mapper.selectByExample(nu1l);
//查询功能之后可以获取分页相关的所有数据
PageInfo<Emp> pageInfo = new PageInfo<>(list, navigatePages: 5);
list.forEach(System.out::println);
System.out.println("总记录数:" + pageInfo.getTotal());
System.out.println("总页数:" + pageInfo.getPages());
System.out.println("当前页码:" + pageInfo.getPageNum());
System.out.println("每页显示的记录数:" + pageInfo.getPageSize());
System.out.println(pageInfo);
}
4.分页相关数据描述
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, 导航分页的页码数
navigateFirstPage=4, 导航分页的首位页码
navigateLastPage=8, 导航分页的末尾页码
navigatepageNums=[4, 5, 6, 7, 8] 导航分页的页码
}
常用数据:
pageNum:当前页的页码
pageSize:每页显示的条数
size:当前页显示的真实条数
total:总记录数
pages:总页数
prePage:上一页的页码
nextPage:下一页的页码
isFirstPage/isLastPage:是否为第一页/最后一页
hasPreviousPage/hasNextPage:是否存在上一页/下一页
navigatePages:导航分页的页码数
navigatepageNums:导航分页的页码,[1,2,3,4,5]