12、Mybatis之分页插件
12.1、引入依赖

<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
12.2、配置分页插件

注意:plugins标签要在environments标签之前
<plugins>
<!--设置分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
12.3、使用示例
12.3.1、未分页查询示例

@Test
public void testPagehelper(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
List<Emp> emps = empMapper.selectByExample(null);
for (Emp emp : emps) {
System.out.println(emp);
}
}
12.3.2、分页查询示例

注意:从控制台日志可知,开启分页功能后,Pagehelper会通过拦截器的方式自动在查询sql中添加limit语句;
其中,语句的第一个参数值为(pageNum-1)*pageSize;第二个参数值为pageSize
@Test
public void testPagehelper(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
//在查询之前,使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
//pageNum:当前页的页码
//pageSize:每页显示的条数
PageHelper.startPage(2,3);
List<Emp> emps = empMapper.selectByExample(null);
for (Emp emp : emps) {
System.out.println(emp);
}
}
12.3.3、分页查询进阶示例

@Test
public void testPagehelper(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
//在查询之前,使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
//pageNum:当前页的页码
//pageSize:每页显示的条数
PageHelper.startPage(2,3);
List<Emp> emps = empMapper.selectByExample(null);
//在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int navigatePages)获取分页相关数据
//list:分页之后的数据
//navigatePages:导航分页的页码数
PageInfo<Emp> empPageInfo = new PageInfo<Emp>(emps,3);
System.out.println(empPageInfo);
}
12.3.3.1、分页相关数据详解
PageInfo{
pageNum=2, pageSize=3, size=3, startRow=4, endRow=6, total=9, pages=3,
list=Page{count=true, pageNum=2, pageSize=3, startRow=3, endRow=6, total=9, pages=3, reasonable=false, pageSizeZero=false}
[Emp{empId=4, empName='小军', age=null, gender='女', deptId='null'},
Emp{empId=5, empName='小明1', age=20, gender='男', deptId='null'},
Emp{empId=8, empName='小红', age=25, gender='男', deptId='null'}],
prePage=1, nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true, hasNextPage=true,
navigatePages=3, navigateFirstPage=1, navigateLastPage=3, navigatepageNums=[1, 2, 3]
}
| 属性 | 解析 |
|---|---|
| pageNum | 当前页的页码 |
| pageSize | 每页显示的条数 |
| size | 当前页显示的真实条数 |
| total | 总记录数 |
| pages | 总页数 |
| prePage | 上一页的页码 |
| nextPage | 下一页的页码 |
| isFirstPage | 是否为第一页 |
| isLastPage | 是否为最后一页 |
| hasPreviousPage | 是否存在上一页 |
| hasNextPage | 是否存在下一页 |
| navigatePages | 导航分页的页码数 |
| navigatepageNums | 导航分页的页码,[1, 2, 3] |
12、Mybatis之分页插件的更多相关文章
- SpringBoot集成MyBatis的分页插件 PageHelper
首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...
- Mybatis的分页插件PageHelper
Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschina. ...
- Mybatis 的分页插件PageHelper-4.1.1的使用
Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschin ...
- Mybatis之分页插件pagehelper的简单使用
最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...
- spring boot(二)整合mybatis plus+ 分页插件 + 代码生成
先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...
- ajax+json模态框中分页(spring+struts+mybatis+easyui分页插件)
0.业务需求: 点击每个数字的时候可以显示每个对应的详细记录.也就是得点击11的时候拿着开采部与C级去查询.
- Sprin Boot2.0之整合Mybatis整合分页插件
pageHelper PageHelper 是一款好用的开源免费的 Mybatis 第三方物理分页插件 物理分页 支持常见的 12 种数据库.Oracle,MySql,MariaDB,SQLite,D ...
- 理解 Mybatis的分页插件 PageHelper
Mybatis + SpringMVC + Maven实现分页查询 (推荐采用的插件是PageHelper) 先看一下之前的这篇博客,这里推荐了 Mybatis 的分页方法. 按照上面的方法设置后,确 ...
- 利用mybatis的分页插件实现商品列表的显示
分析思路: 当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能. 首先首先我们先找到商品查询商品的按钮在jsp的那个页面,即首页index.jsp 这里有个url即显示商品 ...
- mybatis的分页插件使用方法
1.下载所需要的jar包,如果使用maven可以在maven中添加依赖: 插件的实现原理: 如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的j ...
随机推荐
- Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题 Prompt工程是一种相对较新的学科,用于开发和优化提示,以有效地使用语言模型(LM ...
- 1406, "Data too long for column 'od_seq' at row 1"
问题描述:1406, "Data too long for column 'od_seq' at row 1" 问题分析:录入数据长度超出字段的最大限制 解决方法:增加max_le ...
- js 关于 replace 取值、替换第几个匹配项
〇.前言 在日常开发中,经常遇到针对字符串的替换.截取,知识点比较碎容易混淆,特此总结一下,仅供参考. 一.替换第一个匹配项 字符串替换 let strtest = "0123测试repla ...
- 2021年蓝桥杯C/C++大学B组省赛真题(路径)
题目描述: 小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图中的最短路径. 小蓝的图由2021 个结点组成,依次编号1 至2021. 对于两个不同的结点a, b,如果a 和b 的差的绝 ...
- springboot mvc配置原理+扩展springmvc(重点)
1.新建config目录 2.在config目录下创建自定义配置类 3.根据官方文档得到要有注解@Configuration并且继承类WebMvcConfigurer 扩展springmvc:我们慢慢 ...
- vscode 配置代码自动格式化加修复
子曰:"工欲善其事,必先利其器", 编码必须的就是有一个顺手的ide,然而光有还不行,还要懂得配置,毕竟不同的团队代码规范不同,如目前用得较多的就是eslint,今天就顺便记录下v ...
- vue cli3 整合Cesium,处理build 时内存溢出问题
一直使用cesium,但是都是使用script直接引入的,但是在将其放置在增加路由的子页面中中时会出现一个问题,刷新后提示cesium is undefined 看直接引入cesium.js < ...
- 代码随想录算法训练营Day52 动态规划
代码随想录算法训练营 代码随想录算法训练营Day52 动态规划| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 300.最长递增子序列 题目链接:300.最长递增子序列 ...
- 代码随想录算法训练营Day17二叉树|110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和
优先掌握递归 110.平衡二叉树 题目链接:110.平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树_每个节点_ 的左右两个子树的高度差的绝对 ...
- 小程序提交POST请求,出现405错误
status": 405, "error": "Method Not Allowed", "message": "Req ...