Mybatis学习 PageHelper分页插件
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分页插件的更多相关文章
- SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页
SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...
- Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板
作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...
- Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件
前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...
- 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法
spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...
- Spring Boot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程
Spring Boot整合druid数据源 1)引入依赖 <dependency> <groupId>com.alibaba</groupId> <artif ...
- springboot如何集成mybatis的pagehelper分页插件
mybatis提供了一个非常好用的分页插件,之前集成的时候需要配置mybatis-config.xml的方式,今天我们来看下它是如何集成springboot来更好的服务的. 只能说springboot ...
- 小白的springboot之路(十五)、mybatis的PageHelper分页插件使用
0.前言 用mybatis,那么分页必不可少,基本都是用PageHelper这个分页插件,好用方便: 1.实现 1.1.添加依赖: <!-- 3.集成 mybatis pagehelper--& ...
- 后端——框架——持久层框架——Mybatis——补充——pageHelper(分页)插件
Pagehelper插件的知识点大致可以分为三个部分 搭建环境,引入jar包,配置. 使用方式,只需要记住一种即可.类似于在写SQL语句中,可以left join,也可以right join,它们实现 ...
- Mybatis第三方PageHelper分页插件原理
欢迎关注公号:BiggerBoy,看更多文章 原文链接:https://mp.weixin.qq.com/s?__biz=MzUxNTQyOTIxNA==&mid=2247485158&a ...
随机推荐
- [洛谷P3380]【模板】二逼平衡树(树套树)
题目大意:有$5$种操作: $1\;l\;r\;k:$查询$k$在区间$[l,r]$内的排名 $2\;l\;r\;k:$查询区间$[l,r]$内排名为$k$的值 $3\;pos\;k:$把第$pos$ ...
- [USACO16OPEN]钻石收藏家Diamond Collector
由于相差不超过k才可以放在一起,要判断不超过k这个条件,显然我们需要排序 首先我们需要一个f数组,f[i]意义看代码开头注释, 假设我们可以选择的某一个区间是a[l]~a[r](已排序且最优(最长的意 ...
- BZOJ2588:Count on a tree——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2588 Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你 ...
- 从零开始学Linux系统(一)之引导流程解析
Linux系统:分时多用户多任务的操作系统: Linux系统引导流程: inittab配置文件中: 定义了linux系统的运行的7个级别:从0~6 0.6:分别代表关机和重启,不建议设置为默认的运行级 ...
- 使用Google的CDN JQuery库
CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘" ...
- BAT-Java必考面试题集
2018最新<BAT Java必考面试题集> 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象 ...
- bzoj 4725 [POI2017]Reprezentacje ró?nicowe 暴力
[POI2017]Reprezentacje ró?nicowe Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 141 Solved: 67[Sub ...
- [技巧篇]03.关于MyBatis的简单批量处理
- cas 服务端、客服端详细配置
一.准备 1.下载官方源码 CAS-Server下载地址:https://www.apereo.org/projects/cas/download-cas CAS-Client下载地址:http:// ...
- POJ 2891- Strange Way to Express Integers CRT 除数非互质
题意:给你余数和除数求x 注意除数不一定互质 思路:不互质的CRT需要的是将两个余数方程合并,需要用到扩展GCD的性质 合并互质求余方程 m1x -+ m2y = r2 - r1 先用exgcd求出特 ...