1、Maven依赖,注意使用PageHelper时的版本必须与Mybatis版本对应

 1         <!-- 添加Mybatis依赖 -->
2 <dependency>
3 <groupId>org.mybatis</groupId>
4 <artifactId>mybatis</artifactId>
5 <version>3.3.0</version>
6 </dependency>
7 <dependency>
8 <groupId>org.mybatis</groupId>
9 <artifactId>mybatis-spring</artifactId>
10 <version>1.2.3</version>
11 </dependency>
12 <!-- pageHelper -->
13 <dependency>
14 <groupId>com.github.pagehelper</groupId>
15 <artifactId>pagehelper</artifactId>
16 <version>4.1.4</version>
17 </dependency>

2、需要在Mybatis的配置信息中使用PageHelper插件,mybatis-config.xml

 1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5
6 <configuration>
7 <plugins>
8 <plugin interceptor="com.github.pagehelper.PageHelper">
9 <!--指明数据库 4.0.0以后不需要设置此属性-->
10 <property name="dialect" value="mysql"/>
11 <!-- 该参数默认为false -->
12 <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
13 <!-- 和startPage中的pageNum效果一样-->
14 <property name="offsetAsPageNum" value="true"/>
15 <!-- 该参数默认为false -->
16 <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
17 <property name="rowBoundsWithCount" value="true"/>
18 <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
19 <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
20 <property name="pageSizeZero" value="true"/>
21 <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
22 <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
23 <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
24 <property name="reasonable" value="true"/>
25 <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
26 <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
27 <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->
28 <!-- 不理解该含义的前提下,不要随便复制该配置 -->
29 <property name="params" value="pageNum=start;pageSize=limit;"/>
30 <!-- 支持通过Mapper接口参数来传递分页参数 -->
31 <property name="supportMethodsArguments" value="true"/>
32 <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
33 <property name="returnPageInfo" value="check"/>
34 </plugin>
35 </plugins>
36 </configuration>

3、在配置Spring配置文件中,配置Mybatis的SqlSessionFactory时,需要把mybatis-config.xml添加到属性中

1     <!-- SqlSessionFactory -->
2 <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
3 <!--设置数据源-->
4 <property name="dataSource" ref="dataSource"></property>
5 <!--设置映射文件-->
6 <property name="mapperLocations" value="classpath:mybatis/sqlmap/mapper/*.xml"></property>
7 <!--设置pageHelper-->
8 <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
9 </bean>

4、使用Mybatis的mapper接口进行查询,在查询时,需要使用PageHelper.startPage方法,,传入pagenum当前页,pagesize每页大小数

 1     @Test
2 public void testSelectAll() {
3 Page<Doctor> page = PageHelper.startPage(1, 3);
4 //selectAll查询出的List即为上面定义的page
5 doctorMapper.selectAll();
6 //注意:
7 //使用PageHelper.startPage只是针对接下来的一条查询语句,
8 //如果又查询了一次数据,则还需要使用一次PageHelper.startPage
9 logger.info("获取所有Doctor信息,获得记录数:{}", page.size());
10 logger.info("获取所有Doctor信息,获得记录:{}", page);
11 //使用PageInfo封装
12 PageInfo<Doctor> info = new PageInfo<Doctor>(page);
13 logger.info("info.getPages:{}",info.getPages());
14 }

5、Page对象继承了ArrayList,因此在使用了PageHelper.startPage之后,Page即为查询到的数据,并且在Page中还额外封装了pageNum,pageSize等属性,还可以使用PageInfo封装Page,PageInfo中有更多的分页属性,例如isFirstPage是否为首页、isLastPage是否为末尾、hasNextPage是否存在下一页等。

Mybatis学习 PageHelper分页插件的更多相关文章

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

    SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...

  2. Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板

    作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...

  3. Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件

    前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...

  4. 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法

    spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...

  5. Spring Boot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程

    Spring Boot整合druid数据源 1)引入依赖 <dependency> <groupId>com.alibaba</groupId> <artif ...

  6. springboot如何集成mybatis的pagehelper分页插件

    mybatis提供了一个非常好用的分页插件,之前集成的时候需要配置mybatis-config.xml的方式,今天我们来看下它是如何集成springboot来更好的服务的. 只能说springboot ...

  7. 小白的springboot之路(十五)、mybatis的PageHelper分页插件使用

    0.前言 用mybatis,那么分页必不可少,基本都是用PageHelper这个分页插件,好用方便: 1.实现 1.1.添加依赖: <!-- 3.集成 mybatis pagehelper--& ...

  8. 后端——框架——持久层框架——Mybatis——补充——pageHelper(分页)插件

    Pagehelper插件的知识点大致可以分为三个部分 搭建环境,引入jar包,配置. 使用方式,只需要记住一种即可.类似于在写SQL语句中,可以left join,也可以right join,它们实现 ...

  9. Mybatis第三方PageHelper分页插件原理

    ​ 欢迎关注公号:BiggerBoy,看更多文章 原文链接:https://mp.weixin.qq.com/s?__biz=MzUxNTQyOTIxNA==&mid=2247485158&a ...

随机推荐

  1. 【以前的空间】bzoj 1227 [SDOI2009]虔诚的墓主人

    题解:hzw大神的博客说的很清楚嘛 http://hzwer.com/1941.html 朴素的做法就是每个点如果它不是墓地那么就可形成十字架的数量就是这个c(点左边的树的数量,k)*c(点右边的树的 ...

  2. POJ1422:Air Raid——题解

    http://poj.org/problem?id=1422 题目大意:n个点m条有向边,每条边只能走一次,往点上放人让他们走遍所有边,问至少要多少人. —————————————————————— ...

  3. BZOJ3172 & 洛谷3966 [Tjoi2013]单词 【fail树】

    3172: [Tjoi2013]单词 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 4293  Solved: 2083 [Submit][Stat ...

  4. JavaScript in 操作符

    JavaScript的in操作符可以用来判断一个属性是否属于一个对象,也可以用来变量一个对象的属性 1. 判断属性属于对象 var mycar = {make: "Honda", ...

  5. bzoj1051: [HAOI2006]受欢迎的牛(tarjan强连通分量)

    强连通缩下点,出度为0有多个答案为0,否则答案为出度为0的强连通分量中点的个数. 发现一道tarjan模板题,顺便复习一波tarjan #include<iostream> #includ ...

  6. ACE的安装

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/03/580714.html ACE的安装是一件比较麻烦的事情,这里简单的记录了我在VS2005 ...

  7. FreeRTOS - configASSERT(断言)的使用

    原文地址:http://www.cnblogs.com/god-of-death/p/6891400.html  FreeRTOS中的断言函数configASSERT()和标准C中的断言函数asser ...

  8. tomcat 访问400 的一种情况

    tomcat 高版本对访问url做了较高的校验,如果url中包含特殊字符,tomcat会自动拦截,返回400错误.如果要包含特殊字符,需要事先进行转译. 我原来用的apache-tomcat-6.0. ...

  9. android中dip、dp、px、sp和屏幕密度

    1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这    这个 ...

  10. 数据结构:Treap

    关于重量平衡树的相关概念可以参考姊妹文章:重量平衡树之替罪羊树 Treap是依靠旋转来维护平衡的重量平衡树中最为好写的一中,因为它的旋转不是LL就是RR 对于每一个新的节点,它给这个节点分配了一个随机 ...