Mybatis plus 高级

MyBatis-Plus的一些高级干货 MyBatis-Plus的一些高级干货 MyBatis Plus(简称 MP)是一个 MyBatis 的增强版,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 记住:对MyBatis只做增强不做改变,引入它不会对现有工程产生影响\color{red}{对MyBatis 只做增强不做改变,引入它不会对现有工程产生影响}对MyBatis只做增强不做改变,引入它不会对现有工程产生影响 mp官方文档:https://mp.baomidou.com/guide/ 1.MyBatis-Plus 阅读详情

Mybatis plus 高级

最近项目重构 dao层使用的Mybatis plus,有必要总结下。

Mybatis plus 会自动维护Mybatis 以及 MyBatis-Spring 相关依赖  所以在构建项目时候 只需要引入Mybatis plus 的maven坐标就OK了

 

Mybatis plus的核心在BaseMapper<T>

包含了各种各样的 接口方法

所以我们继承后就可以拿来使用了!

Q1:

  在插入时候 bean(包含ID) 需要 使用主键策略    (数据库ID自增)

  使用注解@Table 

   在Bean上面加上注解 @TableId(value="id", type=IdType.AUTO)

   可以配置全局策略 就不用每个表都写这个注解了! 处理下划线到驼峰命名的问题

Q2:

 MP会默认使用实体类的类名到数据库中找对应的表

 使用注解@TableName(value=“tx_user“)解决

 可以配置全局策略 加个统一的前缀,就不用每个表都写这个注解了! 前缀+实体类  是table name

 

Q3:

 Mybatis plus全局策略配置

 xx.xx.xx.GlobalConfiguration

   默认是true  解析驼峰命名 到 下划线对应

   

Q4:

 @TableField(value="last_name")  对应数据库的名字

 @TableField(exist=false)   这个字段数据库没有哦  插入时候不会报错(用的比较少)

 

Q5:

 在插入一条数据时候,获取主键值

 自动的回写到实体类Bean中 不需要额外的操作

  

Q6:

  插入时候

   方法 insert()  只有非空的才会出现在sql语句日志中

           insertAllColumn() 插入所有字段  空的也是显示的  日志打印会出来这几个字段  但是是null 结果也是一样的   返回Integer

 

Q7:

   updateById()   通用更新操作  返回Integer

   updateAllColumnByID  会插入null

Q8:

   selectById()

   selectOne( entity )  通过多个列进行查询  非空属性作为条件进行查询了  要返回一条数据 要不就报错了

    List<T> selectBatchIds(List<? extends Serializable> idList)   //通过多个Id进行查询

   LIst<T> selectByMap<columnMap>  // key 是列名"school_name" 

   List<T> selectPage(RowBounds rowBounds, Warpper<T> wrapper); //分页查询  Page的对象继承了rowBounds   底层没有使用limit  使用的Mybatis的  内存的分页方式  参数 第几页  每页显示多少条数据

      Mybatis有个PageHelper    Mybatis Plus 有自己的分页插件 

  

补充 selectList

        selectOne

        selectById

        selectAll

        selectCount

 

Q9:  (remove)

  Integer deleteById(Serializable id)

  Integer deleteByMap(@Param("crm") Map<String, Object> columnMap)    key一定要写数据库的列名

  Integer deleteBatchIds(LIst<? extends Serializable> iDList)    //批量删除  底层sql 使用的in

  

以上是常用的CRUD

 

原理分析


 

 

  BaseMapper 中提供了通用的CRUD方法

 

 

补充功能强大的条件构造器 EntityWrapper


 

 

 实体包装器,主要用于处理SQL拼接,排序,实体参数查询等。

 

 

条件参数说明

查询方式说明
setSqlSelect设置 SELECT 查询字段
whereWHERE 语句,拼接 + WHERE 条件
andAND 语句,拼接 + AND 字段=值
andNewAND 语句,拼接 + AND (字段=值)
orOR 语句,拼接 + OR 字段=值
orNewOR 语句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 内容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查询 LIKE
notLike模糊查询 NOT LIKE
inIN 查询
notInNOT IN 查询
isNullNULL 值查询
isNotNullIS NOT NULL
groupBy分组 GROUP BY
havingHAVING 关键词
orderBy排序 ORDER BY
orderAscASC 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 条件语句
notExistsNOT EXISTS 条件语句
betweenBETWEEN 条件语句
notBetweenNOT BETWEEN 条件语句
addFilter自由拼接 SQL
last拼接在最后,例如:last("LIMIT 1")

 

 

  范围:

 .between("age",2,6);

 .like("name","jack")

 .or()  //或者使用orNew()  orNew() 之前的结果封装 与后面的进行拼接

.like("email","a")  //或者邮箱有a 的

 

  修改操作:

 userEntity 属性是要修改的值

Wrapper是条件 不停的.eq (就是where了)

  .update(UserEntity, Wrapper  )

 

  删除操作

  .update()

  封装一个添加构造器就OK了 .eq() .eq()

 

高级点的查询

 排序的:

  .orderBy()  默认升序

  .orderDesc() 降序   传入的是集合!

  .last( “desc”)   手动把SQL拼接到最后(有sql注入的风险) 

  .last("limit 1,3")

 

 

深入解析MyBatis Plus:从基础到高级实战 MyBatis Plus(MP)是一款基于MyBatis的增强工具,旨在简化开发、提高效率。它在MyBatis的基础上提供了一系列增强功能,如通用CRUD操作、条件构造器、分页插件和代码生成器等,使开发者能够更专注于业务逻辑的实现。MP具有无侵入性、损耗小、支持Lambda调用、主键自动生成等特点,且内置了分页和性能分析插件。与原生MyBatis相比,MP在CRUD操作、条件构造、分页功能等方面提供了更便捷的解决方案。核心组件包括BaseMapper、Wrapper等,支持多种查询和更新操作。在Spring 阅读详情

相关推荐

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 376

详细分析MybatisPlus中的orderBy、orderByDesc、orderByAsc函数

实战中学习并进行补充该类的源码以及应用。

码农研究僧的博客 1万+

【UE5】虚幻引擎Gameplay框架

游戏实例(UGameInstance)会在引擎启动时实例化,并保持活跃直至引擎关闭。这是一种管理器类,在游戏中不存在实体,但会追踪数据和运行代码。在联网多人游戏中,游戏实例不会被复制,而是独立存在于服务器以及所有互联的客户端上。所有你希望在关卡加载间保持的内容都应存于游戏实例中。例如,游戏实例是管理游戏保存系统的到地方。游戏实例还可以充当任意数量的 游戏实例子系统 的管理器,这些子系统由游戏实例创建和销毁,并且与游戏实例本身具有相同的生命周期。在线子系统就属于这类子系统。

一个写程序的 1795

深入了解:MyBatisPlus条件构造器带条件排序方法orderBy、orderByDesc、orderByAsc使用

MyBatisPlus是一个优秀的持久层框架,它在MyBatis的基础上进行了增强和封装,提供了更加便捷的数据库操作方式。其中,条件构造器是MyBatisPlus的重要特性之一,它可以帮助我们动态地构建SQL查询条件。而在条件构造器中,排序是一个常见的需求,MyBatisPlus提供了​​orderBy​​、​​和​​三个方法来实现条件排序。本文将介绍这三个方法的使用方式。MyBatisPlus的条件构造器提供了丰富的方法来构建SQL查询条件,其中排序是一个常见的需求。通过​​orderBy​​、​​和​。

牛肉胡辣汤 1万+

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 485

结合qtdesigner,用pyqtgraph在界面上绘制波形图(一)

思路:先画图,然后在qtdesigner上放一个容器,给这个容器添加一个布局,然后把图当作一个Widget放入布局中。二、PyUIC把test.ui转换成test.py,再新建一个load_test.py写脚本。就这么简单,基础部分就完成了。也可以给它添加样式,我知道的样式不算多,但会继续写。一、随便拖进来一个容器控件,我拖了一个Widget。要想把波形图显示在界面上,核心思想其实很简单。三、load_test.py的代码。

learninger_lt7的博客 1803

Mybatis-Plus项目中使用eq()

我有篇文章写了Mybatis-plus的一些语法以及简单的用法,此处为链接,需要的可以看一下。 这里记录一下项目中碰到使用eq(),但里面的结构是eq(Entity :: name ,“张三”), 算是第一次接触接触这个格式,这eq括号里面的“ :: ”两个冒号,就是该实体的字段,类似于传参 LambdaQueryWrapper<TbCloudbox> lqDevice = new LambdaQueryWrapper<>();(1) //NVR

丁东的博客 3万+

手把手教你用FreeModbus RTU协议栈实现STM32与PLC通信(附Keil工程)

本文详细介绍了如何使用FreeModbus RTU协议栈在STM32上实现与PLC的工业通信。从环境搭建、工程配置到关键移植接口实现,提供了Keil工程模板和调试技巧,帮助开发者快速掌握Modbus RTU通信技术,适用于工业自动化领域的设备间通信需求。

weixin_42549037的博客 419

mybatis-plus之排序查询

本文介绍了mybatis-plus的排序查询。

努力是为了让自己不平庸。。。 6759

LTC3783 LED驱动控制器设计与效率优化详解

开关电源控制器是现代LED照明的核心器件,通过电流模式控制实现高效能量转换。其核心原理是通过采样电阻检测负载电流,配合误差放大器形成闭环调节,在汽车电子、显示背光等场景中确保±3%的电流精度。LTC3783作为典型代表,集成升压/降压-升压多拓扑支持,配合PWM调光技术可实现3000:1的无色偏调光范围。在工程实践中,需重点考量功率电感选型、MOSFET开关损耗与热管理设计,例如在38W功率方案中采用10μH/5A电感和4.5mΩ MOSFET可达成95%效率。该方案特别适用于需要应对9-36V宽输入电压波

weixin_36231030的博客 400

【WRFDA教程第一期】运行观测预处理程序(OBSPROC)

运行观测预处理程序(OBSPROC)

WW、forever的博客 1896

MyBatisPlus(十二)查询结果排序:orderBy

排序查询,对应SQL语句中的orderBy语句,对查询结果按照指定字段排序。

宋冠巡的博客 1万+

基于多模态融合的反无人机视觉跟踪算法研究

本研究提出了一种基于多模态融合的反无人机视觉跟踪算法,通过整合可见光、红外、深度等多种视觉信息源,提高了对无人机的跟踪精度和可靠性。设计并实现了多模态特征提取方法,针对不同模态图像的特点提取了有效的特征信息,为多模态融合提供了基础。研究了多种多模态融合策略,包括特征级融合、决策级融合和混合融合,并通过实验对比分析了它们的优缺点,确定了适合反无人机视觉跟踪的融合方法。选择并改进了跟踪算法,将多模态融合信息融入到跟踪过程中,提高了算法对复杂环境和无人机运动变化的适应性。

AI的内部世界的博客 1354

MyBatis-Plus 的高级使用

MyBatis-Plus 的高级使用1. 快速入门2. 核心功能2.1 注解2.2 CRUD接口2.3 Service CRUD接口2.4 条件构造器2.5 更新操作2.6 删除操作2.7 自定义SQL2.8 分页查询2.9 AR模式2.10 主键策略2.11 配置2.12 代码生成器3. 高级功能3.1 逻辑删除3.2 自动填充3.3 乐观锁插件3.4 性能分析插件3.5 多租户SQL解析器3.6 动态表名SQL解析器4. 总结 MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提

Hello, New World! 4140

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

你知道 MyBatis-Plus 的有哪些 Plus 高级功能吗?

MyBatis-Plus 通过提供一系列“Plus”高级功能,极大地提升了开发效率并简化了代码的复杂性。自动填充、逻辑删除、分页插件、自定义 SQL、代码生成器、多租户支持和性能分析等功能,使得 MyBatis-Plus 成为一个非常适合快速开发和高效维护的工具。如果你还没有充分利用这些“Plus”功能,那么不妨在项目中尝试一下,提升你的开发体验和工作效率。

W楠的博客 765

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Mybatis】Mybatis-Plus 高级

MyBatis 允许你在已映射语句执⾏过程中的某⼀点进⾏拦截调⽤。我们看到了可以拦截Executor接⼝的部分⽅法,⽐如update,query,commit,rollback等⽅法,还有其他接⼝的⼀些⽅法等。

下半夜的风 1002

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MyBatis-Plus高级扩展

MyBatis-Plus高级扩展相关梳理。

m0_59748326的博客 2046

MyBatis-Plus高级查询Wrapper

MyBatis-Plus高级查询Wrapper

cmy_top的博客 4588

MyBatis Plus高级查询

【代码】MyBatis Plus高级查询。

2301_77453930的博客 240

Mybatis-Plus02:高级拓展

本文介绍了数据库操作中的逻辑删除实现方法,通过添加标记字段而非物理删除数据。详细说明了乐观锁和悲观锁的区别与应用场景,重点讲解了基于版本号的乐观锁实现流程。同时介绍了MyBatis-Plus的防全表更新机制和代码生成器工具的使用。这些技术方案能有效保障数据安全、处理并发访问并提高开发效率,为数据库操作提供了完整的解决方案。

清晓粼溪的博客 738

你知道MyBatis-Plus有哪些plus高级功能“玩法”吗?

以上全部就是mp提供的一些高级扩展功能,在日常开发中比较实用,都有相应的场景去使用,提高代码高效性,防止重复编码。

weixin_41821642的博客 217

MyBatis-Plus高级用法:最优化持久层开发

*并发问题场景演示:**\*\*解决思路: \*\*乐观锁和悲观锁是在并发编程中用于处理并发访问和资源竞争的两种不同的锁机制!!悲观锁:悲观锁的基本思想是,在整个数据访问过程中,将共享资源锁定,以确保其他线程或进程不能同时访问和修改该资源。悲观锁的核心思想是"先保护,再修改"。在悲观锁的应用中,线程在访问共享资源之前会获取到锁,并在整个操作过程中保持锁的状态,阻塞其他线程的访问。只有当前线程完成操作后,才会释放锁,让其他线程继续操作资源。

weixin_55837048的博客 719

MyBatis-Plus 高级特性详解

MyBatis-Plus 高级特性详解 【免费下载链接】mybatis-plus mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.com ...

gitblog_00143的博客 523

Java开发进阶:浅谈MyBatis Plus高级特性与性能优化

MyBatis Plus是一个MyBatis的增强工具,旨在简化MyBatis的开发。它提供了许多开箱即用的功能,如CRUD操作、分页查询、代码生成等,极大地减少了开发者的重复劳动。同时,MyBatis Plus还保留了MyBatis的灵活性,允许开发者根据实际需求进行自定义。MyBatis Plus允许开发者自定义SQL注入器,以满足特定的业务需求。开发者可以通过继承AbstractMethod类,重写injectMappedStatement方法,定义自定义的SQL语句。java复制。

小筱在线博客 1110

Mybatis-Plus高级特性的深入分析及Spring快速整合

MyBatis-Plus 作为 MyBatis 的增强工具,提供了诸多高级特性:内置通用 Mapper 和 Service,支持 Lambda 查询,减少 SQL 编写;动态 SQL支持多租户、逻辑删除和动态表名;插件扩展提供分页、性能分析、乐观锁等插件;:内置通用 Mapper 和通用 Service,减少大量模板代码。:提供条件构造器、代码生成器、分页插件等实用功能。高级特性如多租户、动态表名等可以应对复杂业务需求。自动填充、乐观锁等特性简化了常见业务场景的实现。:自动处理创建时间、更新时间等字段。

IT_1024_的博客 472
上一篇: Servlet容器初始化IOC容器
下一篇: 总结
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值