PageHelper是在github上免费的一个分页插件,其提供了对数据查询很好的封装和查询效率。
使用PageHelper分页插件需引用jar包。下面介绍maven引用:
1、在maven项目的pom.xml插入以下包:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
2、在需查询前,引入语句:
//在查询之前只需要调用,传入页码(pn),以及每页大小(5)
PageHelper.startPage(pn, 5);
3、startPage后紧跟的这个查询就是一个分页查询,这个查询是控制层的(Controller)直接调用查询方法
//startPage后紧跟的这个查询就是一个分页查询()
List<Employee> empsq=employeeService.getAll();
4、
//使用pageInfo包装查询后的结果,只需要将pageInfo交给页面就行了
//封装了详细的分页信息,包括有我们查询出来的数据,传入连续显示的页数
PageInfo page=new PageInfo(empsq,5);
5、因为我的是ssm框架,所以还需在mybatis的配置文件的configuration标签内,加入以下语句:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql" />
<!-- 分页参数合理化 -->
<property name="reasonable" value="true" />
</plugin>
</plugins>
6.请求成功以后,请求域中会有page,我们可以取出page进行验证:
PageInfo pi=(PageInfo) request.getAttribute("page");
System.out.println("当前页码:"+pi.getPageNum());
System.out.println("总页码:"+pi.getPages());
System.out.println("总记录数:"+pi.getTotal());
System.out.println("在页面需要连续显示的页码");
int[] nums=pi.getNavigatepageNums();
for(int i:nums){
System.out.println(" "+i);
}
//获取当前页码的员工数据
List<Employee> list=pi.getList();
for(Employee e:list){
System.out.println("ID:"+e.getEmpId()+"==Name:"+e.getEmpName());
}
最后,这个插件对大数据量的查询分页很好,效率很快~,是物理分页