• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

PageHelper分页插件

分页功能几乎在每个系统中都是存在的,它的实现也是有很多种方式的。但是今天我们说的是Java培训课程中的分页,Java培训课程中的分页是怎么样做的呢?接下来我们看一下。

1 PageHelper分页插件简介

  • PageHelper是MyBatis中非常方便的第三方分页插件
  • 官方文档:

 https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

  • 我们可以对照官方文档的说明,快速的使用插件

2 PageHelper的使用步骤

  • 导入相关包pagehelper-x.x.x.jar 和 jsqlparser-0.9.5.jar
  • 在MyBatis全局配置文件中配置分页插件

<plugins>

<plugin interceptor=“com.github.pagehelper.PageInterceptor”></plugin>

</plugins>

  • 使用PageHelper提供的方法进行分页
  • 可以使用更强大的PageInfo封装返回结果

3 Page对象的使用

  • 在查询之前通过startPage(页码,条数)设置分页信息,该方法返回Page对象

@Test

public void testPageHelper() throws Exception{

SqlSessionFactory ssf = getSqlSessionFactory();

SqlSession session = ssf.openSession();

try {

EmployeeMapper mapper =

session.getMapper(EmployeeMapper.class);

//设置分页信息

Page<Object> page = PageHelper.startPage(9, 1);

List<Employee> emps = mapper.getAllEmps();

for (Employee employee : emps) {

System.out.println(employee);

}

System.out.println(“=============获取分页相关的信息=================”);

System.out.println(“当前页: ” + page.getPageNum());

System.out.println(“总页码: ” + page.getPages());

System.out.println(“总条数: ” + page.getTotal());

System.out.println(“每页显示的条数: ” + page.getPageSize());

finally {

session.close();

}

}

4 PageInfo对象的使用

  • 在查询完数据后,使用PageInfo对象封装查询结果,可以获取更详细的分页信息以及

可以完成分页逻辑

@Test

public void testPageHelper1() throws Exception{

SqlSessionFactory ssf = getSqlSessionFactory();

SqlSession session = ssf.openSession();

try {

EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);

//设置分页信息

Page<Object> page = PageHelper.startPage(9, 1);

List<Employee> emps = mapper.getAllEmps();

//

PageInfo<Employee> info = new PageInfo<>(emps,5);

for (Employee employee : emps) {

System.out.println(employee);

}

System.out.println(“=============获取详细分页相关的信息=================”);

System.out.println(“当前页: ” + info.getPageNum());

System.out.println(“总页码: ” + info.getPages());

System.out.println(“总条数: ” + info.getTotal());

System.out.println(“每页显示的条数: ” + info.getPageSize());

System.out.println(“是否是第一页: ” + info.isIsFirstPage());

System.out.println(“是否是最后一页: ” + info.isIsLastPage());

System.out.println(“是否有上一页: ” + info.isHasPreviousPage());

System.out.println(“是否有下一页: ” + info.isHasNextPage());

System.out.println(“============分页逻辑===============”);

int [] nums = info.getNavigatepageNums();

for (int i : nums) {

System.out.print(i +” ” );

}

finally {

session.close();

}

}

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注