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. STL使用记录

    1,map 对map实在不熟...赶紧记录一下用法吧. 后来再发现新的用法再补充吧 定义: map<int, int> m; 其中的int可以为自定义的任何类型. m[key值类型的变量] ...

  2. 原 cocos2dx中毒冰冻shader

    #ifdef GL_ES precision mediump float; #endif uniform sampler2D u_texture; varying vec2 v_texCoord; v ...

  3. HDU 2089 不要62 | 暴力(其实是个DP)

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 题解: 暴力水过 #include<cstdio> #include<algor ...

  4. lighttpd - 配置

    Lighttpd core 配置 connection.kbytes-per-second     限制每一个链接的速度etag.use-inode                   Etag使用i ...

  5. Codeforces Round #530 (Div. 2):D. Sum in the tree (题解)

    D. Sum in the tree 题目链接:https://codeforces.com/contest/1099/problem/D 题意: 给出一棵树,以及每个点的si,这里的si代表从i号结 ...

  6. maven中net.sf.json报错的解决方法(转载)

    原文:http://www.cnblogs.com/winner-0715/p/5928514.html 今天在用maven添加net.sf.json的jar包的时候,代码如下: <depend ...

  7. Android如何在初始化的时候获取加载的布局的宽高

    在自定义ListView中,需要将下拉刷新的View在初始化的时候设置padding隐藏起来,这时就要在初始化的时候获得要加载的布局View的高度. private View headView; he ...

  8. ZooKeeper屏障和队列的指南(七)

    引言 在这个指南中,使用展示了使用ZooKeeper实现的屏障和生产-消费队列.我们分别称这些类为Barrier和Queue.这些例子假定你至少有一个运行的ZooKeeper服务. 两个原语都使用下面 ...

  9. [Luogu 1640] SCOI2010 连续攻击游戏

    [Luogu 1640] SCOI2010 连续攻击游戏 DP太恶心,回来二分图这边放松一下心智. 这个建图真的是难以想到. 因为要递增啊,属性值放x部,装备放y部,对应连边跑Hungary就好了. ...

  10. 【BZOJ4720】【NOIP2016】换教室 [期望DP]

    换教室 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input 第一行四个整数n,m,v ...