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之分页插件的更多相关文章

  1. SpringBoot集成MyBatis的分页插件 PageHelper

    首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...

  2. Mybatis的分页插件PageHelper

    Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschina. ...

  3. Mybatis 的分页插件PageHelper-4.1.1的使用

    Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschin ...

  4. Mybatis之分页插件pagehelper的简单使用

    最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...

  5. spring boot(二)整合mybatis plus+ 分页插件 + 代码生成

    先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...

  6. ajax+json模态框中分页(spring+struts+mybatis+easyui分页插件)

    0.业务需求: 点击每个数字的时候可以显示每个对应的详细记录.也就是得点击11的时候拿着开采部与C级去查询.

  7. Sprin Boot2.0之整合Mybatis整合分页插件

    pageHelper PageHelper 是一款好用的开源免费的 Mybatis 第三方物理分页插件 物理分页 支持常见的 12 种数据库.Oracle,MySql,MariaDB,SQLite,D ...

  8. 理解 Mybatis的分页插件 PageHelper

    Mybatis + SpringMVC + Maven实现分页查询 (推荐采用的插件是PageHelper) 先看一下之前的这篇博客,这里推荐了 Mybatis 的分页方法. 按照上面的方法设置后,确 ...

  9. 利用mybatis的分页插件实现商品列表的显示

    分析思路: 当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能. 首先首先我们先找到商品查询商品的按钮在jsp的那个页面,即首页index.jsp 这里有个url即显示商品 ...

  10. mybatis的分页插件使用方法

    1.下载所需要的jar包,如果使用maven可以在maven中添加依赖: 插件的实现原理: 如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的j ...

随机推荐

  1. el-table自适应列宽

    这里可对内容为文本的列进行自适应列宽 以下为 工具方法 /** * 使用span标签包裹内容,然后计算span的宽度 width: px * @param valArr */ function get ...

  2. pytest在conftest里添加钩子函数进行失败处截图,并绑定到allure报告里

    在conftest里要先定义一个selenium之类的driver. @pytest.hookimpl(tryfirst=True, hookwrapper=True)def pytest_runte ...

  3. XTU OJ 程设训练 1407 Alice and Bob

    题目描述 Alice和Bob打球,已知他们打过的每一回合的输赢情况,每个回合获胜的一方可以得一分. Alice可以随意设定赢得一局比赛所需的分数和赢得整个比赛所需要的局数. Alice想赢得比赛,请问 ...

  4. 可以,很强,68行代码实现Bean的异步初始化,粘过去就能用。

    你好呀,我是歪歪. 前两天在看 SOFABoot 的时候,看到一个让我眼前一亮的东西,来给大家盘一下. SOFABoot,你可能不眼熟,但是没关系,本文也不是给你讲这个东西的,你就认为它是 Sprin ...

  5. std::aligned_alloc

    定义于头文件 <cstdlib> (c++) void * aligned_alloc ( std::size_t alignment, std::size_t size); (c++17 ...

  6. WPF在win10/11上启用模糊特效 适配Dark/Light Mode

    先看效果图 win11: win10: 大佬们已经总结了许多在WPF上开启亚克力效果的方法,本文只是做一些填坑和适配工作. 正文开始 先来看看部分版本Windows的模糊效果和我的适配方案: 1).早 ...

  7. 【HMS Core】Health Kit健康数据采样, 原子采样数据问题

    [问题描述] 1.体脂数据中的肌肉量和水份量是如何获得的,都有些什么?体脂数据中的体重,体脂是用户自己上传的,然后通过计算公式得到数据吗 2.日常活动统计数据包含什么内容,怎么获取这些数据? 3. 锻 ...

  8. vivo 帐号服务稳定性建设之路-平台产品系列06

    作者:vivo 互联网平台产品研发团队- Shi Jianhua.Sun Song 帐号是一个核心的基础服务,对于基础服务而言稳定性就是生命线.在这篇文章中,将与大家分享我们在帐号稳定性建设方面的经验 ...

  9. vue-router之hash与history,以及nginx配置

    本篇讲解前端项目的路由模式(以vue-router为例),以及history模式下的项目部署问题. vue-router的路由模式可以通过指定mode属性值控制,可选值:"hash" ...

  10. Python运维开发之路《数据类型》

    一. python数据类型 python的五大基本数据类型,数字.字符串.列表.元组.字典;其他数据类型,类型type.Null.文件.集合.函数/方法.类.模块. 1.数字 1 ①整型 2 十进制转 ...