玩转MyBatis-Plus分页插件一:分页基本使用+方法解释+解析Page对象

article/2025/9/21 13:48:26

hello,我是X,已经快半年的时间没有写过博文了,这段时间里我成长了许多,现在趁着放暑假的功夫,好好的总结一下我上半年的知识储备,信息量较大,赶紧上车吧!

在这里插入图片描述
上车前晒一张后台系统分页的效果图:后期再出教程吧用到了element-ui框架🏭ps:期待一下吧💜

在这里插入图片描述

文章目录

  • 前言
  • 基本使用
    • 1.导入依赖
    • 2.mybatis-plus配置
    • 3.创建分页配置类MybatisPlusConfig
    • 4.方法剖析+测试分页[重]
      • 示例代码[后]
      • 测试结果

前言

mybatis-plus官网:官网传送门
看过官网的朋友肯定知道,这官网里对这一块的内容讲的并不是很深,讲的比较简单,这也增加了开发者的难度。
在官网里对分页插件的讲解最重要的就是PaginationInnerInterceptor这个分页拦截器,玩过PageHelper的朋友都知道,分页它的本质就是内部封装了一个拦截器,对于满足满足条件的数据,起到一个过滤的作用🙋‍♀️这会和我们后续的自定义条件有关,毕竟也是同样的道理,你自定义一个条件来“筛选数据”,只展示满足条件的数据
但是在学习这部分内容之前,你必须先掌握条件构造器这部分内容的知识,否则后面会看迷糊🤤🤯

在这里插入图片描述[官网插图]

基本使用

1.导入依赖

<!-- SpringBoot集成mybatis框架 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version>
</dependency>

2.mybatis-plus配置

这里可自行跳过,按照你的需求来配置,不配置也可以

# MyBatis配置
mybatis-plus:# 搜索指定包别名typeAliasesPackage: com.**.**.domain# 配置mapper的扫描,找到所有的mapper.xml映射文件mapperLocations: classpath*:mapper/**/*Mapper.xml# 加载全局的配置文件configLocation: classpath:mybatis/mybatis-config.xml

3.创建分页配置类MybatisPlusConfig

既然是配置类,别忘了加@Configuration注解😎
配置Bean对象

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); //配置插件类interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); //具体到配置哪一个插件return interceptor;}
}

解析一下🙋‍♀️
首先,配置MybatisPlus的插件类MybatisPlusInterceptor,毕竟我们要用到的是分页插件嘛
然后就是配置你要用哪一个插件啦,这里选择的当然是我们上面提到的PaginationInnerInterceptor,这个类包含了几个参数,那么最重要的参数当然是我们的DBType参数,它的意思是数据库类型,因为不同的数据库类型实现分页的过程是不一样的,所以要指定好,在官网中也可以看到mybatis-plus支持的数据库类型有哪些:

在这里插入图片描述
这里我使用的是mysql,故直接设置DbType.MYSQL即可🕵️‍♀️

4.方法剖析+测试分页[重]

其实如果你使用了mybatis-plus,那么在mapper提供的API当中就有可以进行分页的方法selectPage,这个方法需要两个参数,一个为Page对象,另一个为wrapper对象[也就是前面说到的将符合条件的数据查询出来,为null值则表示查询全部数据],我们直接调用即可🙋‍♀️,在下一章节会使用到wrapper来自定义分页查询

这个函数详情为

<E extends IPage> E selectPage(E page, @Param(“ew”) Wrapper queryWrapper);
从中我们可以知道E的类型是继承了IPage,而IPage又继承了Page类:
在这里插入图片描述
所以我们直接使用即可😉
📝在这里说一下,这个方法其实本质就是在查询的sql最后加上了limit进行分页,关于limit,需要两个参数:index[当前页] pageSize[每页大小]我们打开Page对象即可看到:
在这里插入图片描述
current即为当前页,pageSize为每页大小,别忘了Page对象需要接收你要进行分页的实体类,后续实行分页的时候直接将这个page对象返回即可,我们可以再做一个测试,这个测试要配合前端

示例代码[后]

/*** @program: RuoYi-Vue-master* @description: mybatisPlus分页插件测试* @author: xmonster_大魔王* @create: 2022-07-28 11:48**/
@SpringBootTest
public class MybatisPageTest {@Autowiredpublic ProductMapper mapper;@Testpublic void test(){Page<Product> page = new Page<>(1, 3);mapper.selectPage(page,null);System.out.println(page);}
}

测试结果

在这里插入图片描述
重点来看这一段SQL:
在这里插入图片描述
由于我们这里是从第一页开始,所以limit只有一个参数,当前页1被省略,可以到到分页插件的本质就是在sql语句最后帮我们加上limit
page对象中还可以查看很多其他信息:
在这里插入图片描述
得到记录数、得到每页大小、是否有前一页等等,可以去测着玩玩🧤
学会了的话,赶紧去学习自定义分页吧,想怎么查就怎么查😎😎传送门在下面🍋
玩转MybatisPlus分页插件二:自定义分页函数[简单案例+复杂案例]+Demo实践常规处理操作


http://chatgpt.dhexx.cn/article/t9ILOYCw.shtml

相关文章

JSP的page对象

一 简介 page对象就是指向当前JSP页面本身&#xff0c;有点像类中的this指针&#xff0c;它是java.lang.Object类的实例。 二 常用方法 三 实例 <% page language "java" import "java.util.*" contentType "text/html; charsetutf-8" %&g…

6.Page对象详解

序 就好像用户看到的都是由dom表现出来的&#xff0c;所有的业务处理都是在Page对象中处理的。如果业务越简单&#xff0c;创建的Page对象数量就会越少&#xff1b;如果业务越复杂&#xff0c;那么相对而言Page对象数量就越多&#xff08;或Page实例对象就会越复杂&#xff09…

java中page的对象,page对象

page对象是JSP九大内置对象之一。JSP全称JavaServerPage&#xff0c;是一种动态网页技术标准&#xff0c;以Java语言作为脚本语言。在JSP中预先定义了九个内置对象,这个九个内置对象不需要声明就可以在脚本代码和表达式中任意使用&#xff0c;九个内置对象分别是&#xff1a;re…

Java程序员经典面试题+答案(全)

这套面试题主要目的是帮助那些还没有java软件开发实际工作经验&#xff0c;而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试。 关注公众号【Java典籍】免费赠送一套Java入门视频教程一套&#xff01; 1、一个".java"源文件中是否可以包括多个类&a…

2023年Java最新面试题,附详解答案

写在前面&#xff1a;本篇面试题整理是我在广州地区进行面试整理得出&#xff0c;常见的基本都在下面了。基本都是可以直接在面试时用白话回答的答案总结&#xff0c;面试时照此回答即可&#xff0c;有其他常见面试问题也欢迎在评论区补充。 首次发布&#xff1a;202 3年 1月 更…

java初中级面试题集锦

目录 基础 &与&&区别 使用 final 关键字修饰一个变量时&#xff0c;是引用不能变&#xff0c;还是引用的对象不能变&#xff1f; 静态变量和实例变量的区别&#xff1f; 是否可以从一个 static 方法内部发出对非 static 方法的调用&#xff1f; ""…

Java程序员面试题(一)JavaSE基础 - 上

如果觉得文章对您有一点点帮助&#xff0c;麻烦帮忙点个赞?哦 目录 一、Java面向对象1. 面向对象都有哪些特性以及你对这些特性的理解2.访问权限修饰符 public、private、protected, 以及不写&#xff08;默认&#xff09;时的区别3.如何理解 clone 对象3.1 为什么要用 clone…

Java面试题200+大全(合适各级Java人员)

前言&#xff1a; 本文整理所得&#xff01;但是内容是很干货的&#xff01;我看了也有帮助。做个分享。该列表包含了入门级 Java 程序员和多年经验的高级开发者的问题。无论你是 1、2、3、4、5、6、7、8、9 还是 10 年经验的开发者&#xff0c;你都能在其中找到一些有趣的问题…

Java 程序员不得不会的 124 道面试题(含答案)

多线程、并发及线程的基础问题 1&#xff09;Java 中能创建 volatile 数组吗&#xff1f; 能&#xff0c;Java 中可以创建 volatile 类型数组&#xff0c;不过只是一个指向数组的引用&#xff0c;而不是整个数组。我的意思是&#xff0c;如果改变引用指向的数组&#xff0c;将…

java程序员面试常见面试题及答案整理

JAVA相关基础知识   1、面向对象的特征有哪些方面   1.抽象:   抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是…

2020年高级Java程序员面试题汇总,含答案总结

文章目录 JDKDubboZookeeperSpring系列Redis系列Mysql系列Java多线程消息中间件线程池JVM设计模式其他程序设计基础知识算法题面试技术外的问题面试答案引言: 随着金九银十的面试跳槽,回首在经历了两周的跳槽求职路后,终于成功拿到offer,距今已经入职快一个月了,因此,这几…

2018java程序员面试题整理

1.PathVariable注解和RequestParam注解的区别。 RequestParam注解是获取静态URL传入的参数 PathVariable是获取请求路径中的变量作为参数 /需要和RequestMapping("item/{itemId}") 配合使用 2.Param注解和RequestParam注解的区别。 Parm 指定request中必须包含某…

Java程序员不得不会的面试题(含答案)

每个技术人都有个大厂梦&#xff0c;我觉得这很正常&#xff0c;并不是饭后的谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司&#xff0c;如果说能够在这样的公司锻炼几年&#xff0c;相信对自己…

Java程序员面试题集(1-50)

一、Java基础部分 1、面向对象的特征有哪些方面? 答&#xff1a;面向对象的特征主要有以下几个方面&#xff1a; 1)抽象&#xff1a;抽象是将一类对象的共同特征总结出来构造类的过程&#xff0c;包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为&#xff0c…

Java程序员面试题

下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案&#xff0c;原来的题目中有很多重复题目和无价值的题目&#xff0c;还有不少的参考答案也是错误的&#xff0c;修改后的Java面试题集参照了JDK最新版本&#xff0c;去掉了EJB 2.x等无用…

Java程序员不得不会的124道面试题(含答案)

专注于编程、互联网动态。最终将总结的技术、心得、经验&#xff08;数据结构与算法、源码分析等&#xff09;享给大家&#xff0c;这里不只限于技术&#xff01;还有职场心得、生活感悟、以及面经。 点击上方 关注按钮&#xff0c;第一时间送达&#xff01; 多线程、并发及线…

Java常见面试题

Java面试题 java基础 spring & springMVC mybatis、mybatisplus springboot & springcloudAlibaba redis & mongodb & mysql rabbitmq & kafka docker & linux 一&#xff1a;java基础 1.1&#xff1a;java 面向对象三大特性&#xff08;封装…

Java程序员面试常见试题汇总

下面是Java程序员相关的热门面试题&#xff0c;你可以用它来好好准备面试。 什么是线程&#xff1f;   线程是操作系统能够进行运算调度的最小单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位。程序员可以通过它进行多处理器编程&#xff0c;你可以使…

10万字208道Java经典面试题总结(附答案)

&#x1f345; 作者简介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亚军&#x1f3c6;、新星计划导师✌、博客专家&#x1f4aa; &#x1f345; 哪吒多年工作总结&#xff1a;Java学习路线总结&#xff0c;搬砖工逆袭Java架构师 &#x1f345; 技术交流&#xff1a;定期更新…

2021最新社招面试真题385题,解决你所有面试不懂的问题【Java社招篇】

金九银十已经过去了很久&#xff0c;大家应该都在为明年的求职或者跳槽做准备了&#xff0c;现在给大家总结了一下今年社招都有哪些面试题&#xff0c;包含了全年最全的面试真题&#xff0c;所有面试真题的答案就不在这里一一给大家总结出来&#xff0c;有需要答案的同学&#…