pageHelper(分页插件的使用)

Posted jeremy95-sze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pageHelper(分页插件的使用)相关的知识,希望对你有一定的参考价值。

1.分页概述:
  1.1.为什么要分页?
    1.1.1.为了提高查询效率
    1.1.2.为了方便查看数据

1.2.分页的三个必要条件:
  当前页:由使用者提供
  每一页显示大小:由使用者提供
  总记录数:从数据库表统计

2.PageHelper概述
  2.1.PageHelper使用步骤:
    2.2.1.配置pom.xml,导入依赖包(官方推荐使用最新版本)
    2.2.2.在sqlMapConfig.xml配置插件
    2.2.3.在目标方法前,调用PageHelper.startPage(当前页,页面大小)
PageInfo

PageHelper介绍

PageHelper是国内非常优秀的一款开源的mybatis分页插件, 它支持主流的常用数据库, 例如mysql、 oracle、 mariaDB、 DB2、 SQLite、 Hsqldb等。

使用步骤

<!--pageHelper版本-->
<page.version>5.1.4</page.version>

<!--分页插件依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${page.version}</version>
</dependency>

在sqlMapConfig.xml

<!--配置插件-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 配置相关参数,通常情况使用默认值即可,不需要配置-->
<!--配置指定当前使用的数据库-->
<property name="helperDialect"value="mysql"/>
</plugin>
</plugins>

测试代码

 1 /**
 2      * 2.分页测试
 3      */
 4 @Test
 5 public void pageQueryTest(){
 6 // 1.获取SqlSessionFactory
 7 SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtil.getSqlSessionFactory();
 8 
 9 // 2.创建sqlSession对象
10 SqlSession sqlSession = sqlSessionFactory.openSession();
11 
12 // 3.获取接口的代理对象
13 UserMapper mapper = sqlSession.getMapper(UserMapper.class);
14 
15 // 4.执行数据库操作
16         // 创建pojo包装类型
17 QueryVo queryVo = new QueryVo();
18 
19 // 创建用户对象
20 User user = new User();
21         user.setUsername("");
22 
23 // 包装用户
24 queryVo.setUser(user);
25 
26 // 设置分页
27         /**
28          * 设置分页参数方法:startPage()。
29          * 参数:
30          *      参数一:当前页
31          *      参数二:每一页显示大小
32          *
33          *  细节:
34          *      该方法要在目标操作前设置
35          */
36 PageHelper.startPage(1, 2);// 查询第一页,每一页显示2条记录
37 
38         // 目标操作:查询用户数据
39 List<User> list = mapper.queryUserByQueryVo(queryVo);
40 
41 /**
42          * 封装分页结果数据:PageInfo
43          */
44 PageInfo<User> pageInfo = new PageInfo<User>(list);
45 
46 /**
47          * 打印结果
48          */
49 System.out.println("上一页:"+pageInfo.getPrePage());
50         System.out.println("当前页:"+pageInfo.getPageNum());
51         System.out.println("下一页:"+pageInfo.getNextPage());
52 
53         System.out.println("每一页页显示大小:"+pageInfo.getPageSize());
54         System.out.println("总记录数:"+pageInfo.getTotal());
55         System.out.println("页数:"+pageInfo.getPages());
56 
57 // 获取页号:1 2 3 4 5 6
58 int[] nums = pageInfo.getNavigatepageNums();
59         System.out.print("页号:");
60 for(int i=0;i<nums.length;i++){
61             System.out.print(nums[i]+",");
62         }
63         System.out.println();
64 
65 // 获取结果集
66 System.out.println("结果集数据:");
67         List<User> pageList = pageInfo.getList();
68 for(User u:pageList){
69             System.out.println(u);
70         }
71 
72 // 5.释放资源
73 sqlSession.close();
74     }
75 
76 }

 

以上是关于pageHelper(分页插件的使用)的主要内容,如果未能解决你的问题,请参考以下文章

再议分页插件PageHelper

MyBatis分页插件:比PageHelper都要简单,使用很灵活,目前支持Oracle和MySQL

MyBatis 分页插件 PageHelper(转)

MyBatis-----7.pageHelper分页助手

SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页

mybatis + PageHelper 实现分页