MyBatis Plus从入门到熟练使用(二、中级使用)

MyBatis-Plus快速入门 本篇博文基于 springboot 2.7.2 版本介绍了 mybatis-plus的常见用法:如:基本CRUD、常用注解、条件构造器及常用接口、各种插件、代码生成器、多数据源的使用等内容。 阅读详情

前面一节我们进行了MyBatis Plus的入门介绍,并且进行了新增和查询的相关接口介绍和编写,这一节我们继续深入学习MP。

一、自定义SQL

1、自定义SQL语句使用方法

有时候我们使用MP自带的条件构造器满足不了我们的查询条件了,MP也支持我们自定义SQL。但是要求MP的版本大于等于3.0.7!下面我们来实际应用一下。

我们首先在Mapper里写一个自定义的接口方法,这里使用注解的方式编写SQL语句,大家可以看到这是一个简单的查询所有信息的SQL语句,然后我们调用这个接口的方法如下图:

运行测试一下:

测试成功!

2、自定义SQL条件构造器使用方法

这里如果想要在这个方法里面使用条件构造器该怎么写呢?这里我们在新建一个接口如下图:

这里我们自定义了一个Lambda表达式的条件构造器,然后我们写个接口测试一下:

运行测试一下:

 

测试成功!

二、分页查询

1、分页配置

首先我们写一个配置文件来配置MP的物理分页插件,代码如下:

然后我们来看一下MP所提供的分页接口如下图:

这两个一个返回实体数据信息,一个返回Map信息,下面我们来实践一下!

2、selectPage方法使用

这里我们使用selectPage方法,需要传入Page对象和条件构造器,最后返回一个Ipage对象,里面包含下列信息:

分别为总记录数,总页数,总数据集,当前页,当前页数据量,下面我们运行一下进行测试!

从执行的sql中可以看出执行了两次sql查询,一次是查询记录数的,一次查询具体数据,查询数据的有两个参数0(Long)代表偏移量,2(Long)代表最大返回两条记录。然后可以看到总页数2页,总记录数4个,我们看一下测试结果:

果然只返回了两条数据,我们把内页数量调为4测试一下,如下图:

可以看到,现在只有1页了,且这一页4条数据,说明我们测试成功!

3、selectMapsPage方法使用

下面我们再来测试一下返回Map数据的方法,其实和上面类似,只不过返回的是Map对象,如下图所示:

运行一下看效果:

也没问题,只不过返回的数据类型是Map对象,可以按需要取出使用。

4、分页查询优化

这样分页部分基本就讲解完成了,但是还有一个问题就是每次我们的分页查询都是跑了两次SQL语句,当我们不需要查询记录数的时候那系统性能就会有损耗,这里我们来处理一下这个问题。

我们加入这一句代码,MP在分页查询时就不会去查询记录数了,运行测试一下:

 

只执行了查询数据的,没有执行查询总记录数的,说明我们测试成功了!

三、数据修改更新接口开发

前面讲了数据新增、查询的各种接口的开发,这里我们开始介绍数据修改更新接口的开发。

1、根据id进行修改

这里我们还是选择json数据格式进行数据传输:

运行看一下效果如下图:

测试成功!并且我们看到MP也是可以满足局部更新的,就是你输入什么参数就更新什么值。

2、update方法修改

下面我们来看一下另外一种更新数据的方法update方法:

这里我们使用update方法传入了两个参数,一个是实体,一个是条件构造器wrapper,我们看一下执行的sql语句:

我们的条件构造器中的参数在where的位置,实体类中的参数在set位置上,即条件构造器用来设置条件,实体用来设置修改内容。看一下执行结果:

测试成功!但是你可能觉得每次都要新建一个实体类比较麻烦,别着急,也有不用新建实体类的方法:

3、不构建实体的修改方法

这里我们直接把要set的对象放到了wrapper中,然后在update方法中的实体类位置传入了null,运行测试一下:

也是可以的。我们也可以使用具有防误写功能的Lambda表达式来写,如下图:

4、Lambda条件构造器的修改方法

这里我们把名字改为张三三,年龄改为88,运行一下看效果:

OK,测试成功!我们也可以使用链式的Lambda条件构造器进行修改,如下图:

5、链式Lambda条件构造器的修改方法

运行看一下效果,

这里我们把张三三的年龄修改为18,看一下结果:

测试成功!

三、数据删除接口开发

1、根据id删除

首先我们来介绍简单的通过id删除的方法如下图:

运行测试一下:

可以看到数据库中id为1的数据已经被删除了。

2、deleteByMap方法删除

这个跟我们前面的查询时使用的selectByMap类似,传入一个Map对象进行删除,可以满足根据数据库中的某一列或多列信息进行删除,这里我们写代码介绍一下:

这里我们根据性别进行信息删除,比如我们删除所有的女生信息,运行看一下效果:

显示删除了两条信息,看一下sql语句:

再看一下数据库验证一下:

测试成功,所有的女生信息都已经被删除了。

3、deleteBatchIds方法删除

这个方法和我们前面使用的批量查询功能也是类似的,只不过我们这儿是批量删除,写代码测试一下:

这里我们以传入两个id进行删除为例进行讲解,运行看一下效果:

这里我们把id为2,3的数据删除了,最后去数据库验证一下:

测试成功!

4、带条件构造器的删除方法

运行测试一下:

再去数据库中验证一下:

测试成功!

这样我们结合上一篇文章已经使用MP把增删改查的所有接口都写完了!

这一节就先暂时介绍到这儿!

 

 

 

 

 

 

 

mybatis 和 mybatis-plus 配置文件: 用于配置数据库连接和 MyBatis 运行时所需的各种特性,包含了设置和影响 MyBatis 行为的属性、映射文件的位置。mapper接口和mapper.xml之间需要遵循一定规则,才能成功的让mybatis将mapper接口和mapper.xml绑定起来。创建IUserMapper接口: 用于操作数据库CURD的方法。文件:用于mybatis配置文件读取数据库信息。resources 目录下 创建。resources 目录下 创建。resources 目录下 的。类:用于跟数据库字段做映射。 阅读详情

相关推荐

Mybatis-Plus的详细使用

一,MyBatisPlus概述 需要的基础:MyBatis,Spring,SpringMVC学完 为什么要学习呢?它可以节省我们大量的工作时间,所有的JDBC都可以自动化完成! JPA,tk-mapper,MyBatisPlus 简介 是什么?MyBatis本来就是为简化JDBC操作的! 官方: MyBatisPlus ,简化 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上

qq_52880445的博客 1万+

手把手教你用LangChain4j打造一个“会追问”的AI客服:以航空货运下单为例

本文详细介绍了如何使用LangChain4j构建一个能够主动追问的航空货运AI客服系统。通过对话状态管理、信息缺口识别和渐进式引导等核心技术,实现高效的多轮对话交互。文章包含从交互设计到代码实现的完整指南,特别强调了提示词(Prompt)在优化AI行为中的关键作用,帮助开发者打造更智能的客服解决方案。

weixin_28731223的博客 154

mybatisplus last()

mybatis-plus 条件构造器中last()的使用方法及示例

LOOPY_Y的博客 6944

WRF中使用ERA5再分析数据

   本人在做一些实例时,需要用到最新的ERA5再分析数据集,其中我下载的是ERA5 hourly data on pressure levels form 1979 to present和ERA5 hourly data on single levels from 1979 to present中的3天数据。 1、注册climate copernicus账号 下载ERA5数据前先要注册其账号 2、选择变量    WRF中对于气象数据的字段有具体的要求, ......

GIS 8171

VLA-JEPA:具身智能中潜空间世界模型的工程落地实践

世界模型是具身智能实现环境理解与因果推演的核心基础,其本质是在状态空间中建模‘动作→结果’的动力学规律。传统基于像素或文本的世界模型因高维、非平稳、弱语义等缺陷,在真实机器人场景中鲁棒性差、部署成本高。JEPA(联合嵌入预测架构)通过构建物理约束的潜空间,将视觉-语言-动作(VLA)信号统一编码为低维、可微、可解释的状态表征,显著提升模型对抖动、遮挡、光照突变等干扰的适应能力,并支持实时闭环控制。该范式已在UR5e、Franka等多构型机械臂及Jetson边缘平台完成实测验证,成为VLA系统从实验室走向产线

weixin_34357928的博客 336

mybatis-plus实现物理分页

【代码】mybatis-plus实现物理分页。

x_u_xiang的博客 341

实验六 存储器实验

只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。当地址为00000101时,会分别在数据位宽为8,16,32的只读寄存器中找到地址为00000101所对应的十进制地址位置,也就是地址为5的数据,并将其分别以8位,16位,32位输出。因此,输出保持为0。因此,当异步清零信号为1时,无论其他输入信号是什么,触发器的输出都会被强制清零,输出为0。1)寄存器输入0011,使能端1,异步清零0。

wenmou1111的博客 3004

mybatis-plus 的分页使用(物理分页)

mybatis-plus 的分页使用

星空的日常博客,希望日常能给你帮助 1761

91、Windows网络配置:动态更新与名称解析全攻略

本文全面解析了Windows XP Professional系统中的网络配置方法,重点介绍了动态更新和名称解析两大核心功能。动态更新部分涵盖DHCP客户端、静态配置客户端、远程访问客户端和多宿主客户端的配置方法,并提供禁用动态更新和编辑Hosts文件的注意事项。名称解析部分详细讲解了NetBIOS名称解析的基础知识、WINS配置方法、B节点广播与Lmhosts文件的使用,以及WINS代理的作用和配置要点。通过操作建议流程图和关键操作步骤回顾,帮助用户快速掌握网络配置的核心技巧,适用于不同网络环境的实际需求。

blue42的博客 234

OFDM调制解调系统信道估计和均衡算法的MATLAB仿真

然后,从接收到的信号中提取导频序列,并使用LS算法进行信道估计。OFDM(正交频分复用)是一种常用于高速数据传输的调制技术,它将高速数据流分割成多个低速子载波,通过在不同的子载波上传输数据,实现了频域上的正交性。因此,信道估计和均衡算法在OFDM系统中起着至关重要的作用,用于减小信道衰落引起的影响。通过运行上述代码,可以进行基于LS算法的OFDM调制解调系统信道估计和均衡的MATLAB仿真。本文将介绍一种基于LS(最小二乘)算法的OFDM调制解调系统信道估计和均衡算法,并提供相应的MATLAB仿真代码。

uote_e的博客 229

Java 分页指南:MyBatis 和 MyBatis-Plus 分页功能详解

RowBounds 是 MyBatis 提供的一个简单分页工具类,可以在 SQL 执行时传入分页参数。

ChinaTj001的博客 2323

在 ABAP 中把变量一次写对:深入理解 FINAL 内联声明与不可变变量

摘要:ABAP中的FINAL声明操作符用于定义不可变变量,强调"当前上下文中的唯一写位置",能有效防止变量被意外修改,提升代码健壮性和可读性。官方建议优先在单次赋值的场景使用FINAL替代DATA。其核心规则包括:1)写位置唯一但可多次执行(如循环内);2)不创建块级作用域;3)对引用变量仅约束引用本身而非对象内容。典型适用场景包括:结果值只读、输入快照保存和中间结果保护。例外情况如游标变量不适用,因需多次写操作。正确使用FINAL可显著降低代码维护风险。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1046

mybatis plus 分页_Mybatis-plus常见用法总结二

自定义sql除了Mybatis-plus自带的方法可以使用条件构造器,我们自定义sql也可以使用条件构造器。将Wrapper作为Mapper接口方法参数并在该参数前加上@Param(Constants.WRAPPER),在sql中加入${ew.customSqlSegment},Mybatis-plus会自动帮我们解析public interface UserMapper extends Base...

weixin_39815410的博客 1117

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MyBatis-Plus介绍及基本使用

MyBatis-Plus介绍及基本使用

墨鸦的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MyBatis-Plus入门,看这一篇就足够了

MyBatis-Plus入门,看这一篇就足够了

淮城一只猫 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot集成MyBatis-Plus快速入门Demo

MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

mickey2007的博客 2884

【MyBatis-Plus】MyBatis进阶使用

MyBatis-Plus 是一个的增强工具,在 MyBatis 的基础上只做增强不做改变(也就是说mybatis有的plus都有),为简化开发、提高效率而生。

让优秀成为一种习惯! 4815

MyBatis-Plus 使用详解

阅读目录 一、MyBatis-Plus 1、简介 2、使用 SpringBoot 快速使用 MyBatis-Plus 二、Mybatis-Plus 常用操作 1、配置日志 2、简单认识一下常用注解 3、代码生成器 4、自动填充数据功能 5、逻辑删除 6、分页插件的使用 7、乐观锁的实现 三、Mybatis-Plus CRUD 操作简单了解一下 1、Mapper 接口方法(CRUD)简单了解一下 2、Service 接口方法(CRUD)简单了解一下 3

m0_48805880的博客 4万+

Mybatis-plus 入门

MyBatis-Plus是一个基于MyBatis的增强工具库,通过内置通用CRUD操作、代码生成器、分页插件等特性显著提升开发效率。核心功能包括:1)通用Mapper和Service实现单表基础操作;2)QueryWrapper/LambdaQueryWrapper构建动态查询条件;3)@Version实现乐观锁;4)@TableLogic支持逻辑删除。使用方式包括继承BaseMapper接口、通过注解映射表字段,以及利用条件构造器简化SQL编写。此外还提供Service层接口继承IService的扩展方案

yh云想的博客 1345

MyBatis-Plus入门指南:从零到精通

MyBatis-Plus(简称MP)是一个MyBatis的增强工具,旨在简化开发流程,提高开发效率。它提供了许多便捷的功能,如代码生成、分页查询、条件构造器等,使得开发者可以更专注于业务逻辑的实现。通过以上步骤,我们已经完成了MyBatis-Plus的基本配置和使用。MyBatis-Plus提供了许多便捷的功能,如代码生成、分页查询、条件构造器等,极大地简化了MyBatis的开发流程。希望通过本文的详细解析和示例代码,大家能更好地理解和应用MyBatis-Plus,提高开发效率。

xycxycooo的博客 952

【MyBatis Plus】从入门到精通带你领悟MyBatis-Plus

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 3172

** Mybatis-Plus 从不会到熟练使用 **

Mybatis-Plus 从不会到熟练使用 导航 MyBaits-Plus简介及快速入门 MyBatis-Plus核心功能 一. MyBaits-Plus简介及快速入门 1.1学习前的技术储备 熟悉Lambda表达式 熟悉SpringBoot、Maven 最好熟悉MyBatis 1.2Mybatis vs JPA MyBatis的优势: SQL语句可以自由控制,更灵活,性能更高 ...

暗余的博客 973

mybatis-plus入门,熟练掌握 MyBatis-Plus,一篇就够!

目录 快速入门 核心功能 注解 CRUD接口 条件构造器 更新操作 删除操作 自定义SQL 分页查询 AR模式 主键策略 配置 代码生成器 高级功能 逻辑删除 自动填充 乐观锁插件 性能分析插件 多租户SQL解析器 动态表名SQL解析器 总结 MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,本文主要介绍 mp 搭配 Spring Boot 的使用。 注:本文使用的 mp

zhangkaixuan456的博客 591

mybatis依赖_mybatis-plus的使用 ------ 入门

前言: mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。 一、mybatis-plus简介: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础...

weixin_39636226的博客 1万+
上一篇: MyBatis Plus从入门到熟练使用(一、入门使用)
下一篇: Cesium三维开发笔记(一、加载三维地球)
MagicMHD
博客等级 码龄9年 503粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值