Mybatis之分页插件

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 【1月更文挑战第5天】一、分页插件使用步骤1、添加依赖2、配置分页插件二、分页插件的使用1、开启分页功能2、分页相关数据方法一:直接输出方法二使用PageInfo常用数据:


学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:

想系统/深入学习某技术知识点…

一个人摸索学习很难坚持,想组团高效学习…

想写博客但无从下手,急需写作干货注入能量…

热爱写作,愿意让自己成为更好的人…

文章目录

前言

一、分页插件使用步骤

1、添加依赖

2、配置分页插件

二、分页插件的使用

1、开启分页功能

2、分页相关数据

方法一:直接输出

方法二使用PageInfo

常用数据:

总结


前言

一、分页插件使用步骤

1、添加依赖

2、配置分页插件

二、分页插件的使用

1、开启分页功能

2、分页相关数据

方法一:直接输出

方法二使用PageInfo

常用数据:


一、分页插件使用步骤

1、添加依赖

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version></dependency>

2、配置分页插件

  • 在MyBatis的核心配置文件(mybatis-config.xml)中配置插件
<plugins><!--设置分页插件--><plugininterceptor="com.github.pagehelper.PageInterceptor"></plugin></plugins>

二、分页插件的使用

1、开启分页功能

  • 在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
  • pageNum:当前页的页码
  • pageSize:每页显示的条数
@TestpublicvoidtestPageHelper() throwsIOException {
InputStreamis=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuildersqlSessionFactoryBuilder=newSqlSessionFactoryBuilder();
SqlSessionFactorysqlSessionFactory=sqlSessionFactoryBuilder.build(is);
SqlSessionsqlSession=sqlSessionFactory.openSession(true);
EmpMappermapper=sqlSession.getMapper(EmpMapper.class);
//访问第一页,每页四条数据PageHelper.startPage(1,4);
List<Emp>emps=mapper.selectByExample(null);
emps.forEach(System.out::println);
}

2、分页相关数据

方法一:直接输出

@TestpublicvoidtestPageHelper() throwsIOException {
InputStreamis=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuildersqlSessionFactoryBuilder=newSqlSessionFactoryBuilder();
SqlSessionFactorysqlSessionFactory=sqlSessionFactoryBuilder.build(is);
SqlSessionsqlSession=sqlSessionFactory.openSession(true);
EmpMappermapper=sqlSession.getMapper(EmpMapper.class);
//访问第一页,每页四条数据Page<Object>page=PageHelper.startPage(1, 4);
List<Emp>emps=mapper.selectByExample(null);
//在查询到List集合后,打印分页数据System.out.println(page);
}
  • 分页相关数据:
Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=8, pages=2, reasonable=false, pageSizeZero=false}[Emp{eid=1, empName='admin', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=2, empName='admin2', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=3, empName='王五', age=12, sex='女', email='123@qq.com', did=3}, Emp{eid=4, empName='赵六', age=32, sex='男', email='123@qq.com', did=1}]

方法二使用PageInfo

  • 在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, intnavigatePages)获取分页相关数据
  • list:分页之后的数据
  • navigatePages:导航分页的页码数
@TestpublicvoidtestPageHelper() throwsIOException {
InputStreamis=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuildersqlSessionFactoryBuilder=newSqlSessionFactoryBuilder();
SqlSessionFactorysqlSessionFactory=sqlSessionFactoryBuilder.build(is);
SqlSessionsqlSession=sqlSessionFactory.openSession(true);
EmpMappermapper=sqlSession.getMapper(EmpMapper.class);
PageHelper.startPage(1, 4);
List<Emp>emps=mapper.selectByExample(null);
PageInfo<Emp>page=newPageInfo<>(emps,5);
System.out.println(page);
}
  • 分页相关数据:
PageInfo{
pageNum=1, pageSize=4, size=4, startRow=1, endRow=4, total=8, pages=2, 
list=Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=8, pages=2, reasonable=false, pageSizeZero=false}[Emp{eid=1, empName='admin', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=2, empName='admin2', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=3, empName='王五', age=12, sex='女', email='123@qq.com', did=3}, Emp{eid=4, empName='赵六', age=32, sex='男', email='123@qq.com', did=1}], 
prePage=0, nextPage=2, isFirstPage=true, isLastPage=false, hasPreviousPage=false, hasNextPage=true, navigatePages=5, navigateFirstPage=1, navigateLastPage=2, navigatepageNums=[1, 2]}
  • 其中list中的数据等同于方法一中直接输出的page数据

常用数据:

  • pageNum:当前页的页码
  • pageSize:每页显示的条数
  • size:当前页显示的真实条数
  • total:总记录数
  • pages:总页数
  • prePage:上一页的页码
  • nextPage:下一页的页码
  • isFirstPage/isLastPage:是否为第一页/最后一页
  • hasPreviousPage/hasNextPage:是否存在上一页/下一页
  • navigatePages:导航分页的页码数
  • navigatepageNums:导航分页的页码,[1,2,3,4,5]

总结

以上就是Mybatis之分页插件的相关知识点,希望对你有所帮助。

积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

相关文章
|
20天前
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
35 0
|
20天前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
29 1
|
20天前
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
11天前
|
SQL Java 关系型数据库
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
26 2
|
19天前
|
SQL 存储 算法
Mybatis-Plus- CRUD接口-主键策略-自动填充和乐观锁-分页-逻辑删除-条件构造器和常用接口
Mybatis-Plus- CRUD接口-主键策略-自动填充和乐观锁-分页-逻辑删除-条件构造器和常用接口
|
20天前
|
SQL 前端开发 Java
通过使用Mybatis插件来实现数据的分页功能
通过使用Mybatis插件来实现数据的分页功能
|
20天前
|
SQL XML Java
Mybatis-Plus插件扩展MybatisX
Mybatis-Plus插件扩展MybatisX
32 0
|
20天前
最新版 MyBatisPlus 分页插件(直接拿来就可以用)
最新版 MyBatisPlus 分页插件(直接拿来就可以用)
10 0
|
20天前
|
SQL Java 数据库连接
Mybatis技术专题(3)MybatisPlus自带强大功能之多租户插件实现原理和实战分析
Mybatis技术专题(3)MybatisPlus自带强大功能之多租户插件实现原理和实战分析
146 1
|
20天前
|
SQL Java 数据库连接
Mybatis是如何实现分页功能的
Mybatis是如何实现分页功能的
12 0