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. BZOJ3747:[POI2015]Kinoman——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3747 https://www.luogu.org/problemnew/show/P3582 共有 ...

  2. CC DGCD:Dynamic GCD——题解

    https://vjudge.net/problem/CodeChef-DGCD https://www.codechef.com/problems/DGCD 题目大意: 给一颗带点权的树,两个操作: ...

  3. mac, xcode 6.1 安装command line tools 支持,autoconf,automake等

    以下软件包 都去我的环境库找到 1 先安装 tcl库 2 安装macports /opt/local/bin/port 一般装到这里 安装autoconf时提示: Warning: The Xcode ...

  4. angularJS 条件查询 品优购条件查询品牌(条件查询和列表展示公用方法解决思路 及 post请求混合参数提交方式)

    Brand.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  5. 面向小数据集构建图像分类模型Keras

    文章信息 本文地址:http://blog.keras.io/building-powerful-image-classification-models-using-very-little-data. ...

  6. .NET RabbitMQ

    在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这 种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短 ...

  7. 【poj2114】点分治(离线)

    boatherds 2s 64M by czy 求一颗树上距离为K的点对是否存在 输入数据 n,m 接下来n-1条边a,b,c描述a到b有一条长度为c的路径 接下来m行每行询问一个K 输出数据 对于每 ...

  8. PHP is_null,empty以及isset,unset的区别

    1.empty 判断一个变量是否为“空”.null.false.00.0.’0′.』.为以上值的变量在检测時都将返回true. 2.isset 判断一个变量是否已经设置.0.00.’0′.』.’ ‘. ...

  9. 【洛谷 P3402】 【模板】可持久化并查集

    题目链接 可持久化并查集,就是用可持久化线段树维护每个版本每个节点的父亲,这样显然是不能路径压缩的,否则我们需要恢复太多状态. 但是这并不影响我们启发式合并,于是,每次把深度小的连通块向深度大的上并就 ...

  10. Warning: File upload error - unable to create a temporary file in Unknown on line 0

    upload_tmp_dir 临时文件夹问题 上传文件提示 Warning: File upload error - unable to create a temporary file in Unkn ...