引言
在当今的软件开发世界中,MyBatis-Plus 已经成为了一个不可或缺的工具。作为 MyBatis 的增强版,它不仅保留了 MyBatis 的全部功能,还通过一系列创新性的设计和改进,极大提升了开发效率,使开发者能够以更少的代码实现更多的功能。
MyBatis-Plus 的出现,解决了 MyBatis 在使用过程中可能遇到的痛点。它以一种更加简洁、直观和高效的方式,帮助开发者处理数据库操作。更重要的是,MyBatis-Plus 还提供了许多高级功能,如热加载、ActiveRecord 支持、代码生成等,这些都是开发者在实际开发中非常需要的。
总的来说,MyBatis-Plus 是一个强大而实用的工具,无论是在提高开发效率、简化开发过程,还是在提升软件质量、降低维护成本等方面,都展现出了其独特的优势。如果你是一名开发者,想要提高自己的开发效率、提升软件质量,那么 MyBatis-Plus 绝对是你的不二之选。
这里汇集了MyBatis-Plus基本的使用以及日常会碰到的一些业务场景的文章,有需要的可以收藏学习。
第一章 基础入门
1.1 MyBatis-Plus是什么以及特性[MyBatis-Plus系列]
MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
https://mp.weixin.qq.com/s/FsyThhgUwGLi_8PeTLUFIg
1.2 MyBatis-Plus快速开始[MyBatis-Plus系列]
这一节将通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能
https://mp.weixin.qq.com/s/15IeyrZpfMh9u2xRdvSnnQ
1.3 MyBatis-Plus快速实现增删改[MyBatis-Plus系列]
在前面的小节中,介绍了MyBatis-Plus的基本使用,需要添加什么依赖以及基本的注解配置就可以快速使用MyBatis-Plus的查询selectList。这一节来看一下常用的增删改如何操作呢 ?
https://mp.weixin.qq.com/s/HVy2N5U_xzK226KdTtqwyw
1.4 MyBatis-Plus实现普通查询/分页查询[MyBatis-Plus系列]
在实际的项目中,删除是最简单的,一般大部分的需求场景根据id删除;对于创建和修改可以认为是一个事情,当然如果是修改状态的话,那么就是单个字段的修改,大同小异。
因此在项目中最难的是查询操作,如果是单表查询,那到还好,但是如果是多表查询的话,那么复杂程度会增加;再者就是业务场景中常见的分页查询。
https://mp.weixin.qq.com/s/Z7UOelKpyzk-L469xnr2zQ
第二章MyBatis-Plus核心功能学习
2.1 使用LambdaQueryWrapper再也不担心字段拼写错误了 [MyBatis-Plus系列]
为了更方便的实现动态 SQL,Mybatis Plus 在其基础上扩展了 LambdaQueryWrapper,LambdaQueryWrapper 提供了更加简便的查询语法,同时也避免了 SQL 注入的风险。
https://mp.weixin.qq.com/s/9BeTg_tSlh3hD_4MeoGS4g
2.2 表名注解/主键注解/字段注解/乐观锁注解[MyBatis-Plus系列]
在前面的小节中,对于MyBatis-Plus的使用已经有了一个基本的了解了,本文将介绍 MybatisPlus 注解包相关类详解。
https://mp.weixin.qq.com/s/RzA5fBOuK0E9rP2cH2b4GQ
2.3 MyBatis-Plus通用Service快速实现增删改查[MyBatis-Plus系列]
在前面学习了BaseMapper封装了常见的数据库增删改查操作,在实际的项目中,控制层并不会直接操作数据层,中间还有一层服务层,所以对于服务层的增删改查操作,MyBatis-Plus进行了封装:通用 Service CRUD 封装IService接口。
https://mp.weixin.qq.com/s/Crw5dTDi48698xucD3bYUQ
2.4 SpringBoot集成MyBatis-Plus + MyBatis-Plus(3.5.3版本)代码生成器[MyBatis-Plus系列]
平时在开发的过程中,对于新建的一张表难免会有对其进行增删改查的操作,而且还要写Controller、service、Mapper、Mapper.xml、PO、VO等等。如果每次都要去写这些跟业务毫不相干但是却又耗时耗力的重复代码这不仅是让开发人员不能专注于业务逻辑甚至可能由于不注意导致字段大小写或者某个字母写错而出现bug。所以我们可以利用代码生成器来生成这些固有的代码,这样不仅正确性高,毕竟代码是不会骗人的。而且还节省了时间。
https://blog.csdn.net/linxingliang/category_12491506.html
2.5 MyBatis-Plus主键生成策略[MyBatis-Plus系列]
Mybatis Plus 为我们提供了三种设置主键生成策略的方式。它们的优先级顺序是:局部注解 > 全局 > 默认(雪花算法),下面我们来一一介绍。
https://blog.csdn.net/linxingliang/category_12491506.html
第三章MyBatis-Plus扩展学习
3.1 MyBatis-Plus实现逻辑删除[MyBatis-Plus系列]
在实际的项目中,在删除数据的时候,我们并不想真正的把数据删除掉,而是修改一个状态中,不查询出来而已,这个就是逻辑删除。
在MP中要实现逻辑删除,非常easy,只需要简单的配置即可。接下来就带大家实践一下。
https://blog.csdn.net/linxingliang/category_12491506.html
3.2 Mybatis-Plus通用枚举功能 [MyBatis-Plus系列]
通常在开发中,有这样的需求:枚举类型存入数据库存的是编码code,然而返回给前端的时候是名称name,我们每次入库的时候都要getCode()以及返回给前端的时候要getName(),很繁琐,并且字段属于那种枚举类型的可读性也不高
基于以上问题:我们会尝试着定制一些逻辑专门去处理,一般是自定义枚举转换器实现,然而mybatis-plus提供了优雅的实现方式。
https://blog.csdn.net/linxingliang/category_12491506.html
3.3 Mybatis-Plus自动填充功能配置和使用 [MyBatis-Plus系列]
在数据入库的时候,不管新增或者修改数据,都要手动来设置添加时间和修改时间。每个插入都需要设置,而且数据库还设置不能为空,就很烦恼。
虽然可以在数据库设置默认值,但若没有数据库表修改权限,那就从技术上来解决这个问题吧。(如果有数据库表修改权限,可直接设置相应字段属性)。
需要自动填充的字段:
l 插入数据时自动填充:create_time
l 更新数据时自动填充:update_time
可以数据库设置默认值,也可以通过代码的方式进行自动填充。
本节来看一下如何使用MP的自动填充功能。
https://blog.csdn.net/linxingliang/category_12491506.html
3.4 Mybatis-Plus 自定义SQL注入器,实现真正的批量插入![MyBatis-Plus系列]
在使用MyBatis-Plus时,dao层都会去继承BaseMapper接口,这样就可以用BaseMapper接口所有的方法CRUD。
在Mybatis-Plus中调用updateById方法进行数据更新默认情况下是不能更新空值字段的。
而在实际开发过程中,往往会遇到需要将字段值更新为空值的情况。
那如何让Mybatis-Plus支持空值更新呢?
https://blog.csdn.net/linxingliang/category_12491506.html
3.5 完美的输出打印 SQL 及执行时长[MyBatis-Plus系列]
在我们日常开发工作当中,避免不了查看当前程序所执行的SQL语句,以及了解它的执行时间,方便分析是否出现了慢SQL问题。
MyBatis-Plus提供了两种SQL分析打印的方式,用于输出每条SQL语句及其执行时间,针对执行较长时间的SQL可以停止运行,有助于发现问题。
https://blog.csdn.net/linxingliang/category_12491506.html
3.7 MyBatisX快速开发插件 [MyBatis-Plus系列]
MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率。但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可以使用MyBatisX插件。
https://blog.csdn.net/linxingliang/category_12491506.html
👍 点赞、转发、评论,伸出你的双手666…
🐜i 你就是你,不一样的小蚂蚁!
我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。
à悟纤学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
ShardingJDBC分库分表:http://t.cn/A6ZarrqS
分布式事务解决方案:http://t.cn/A6ZaBnIr
JVM内存模型调优实战:http://t.cn/A6wWMVqG
Spring入门到精通:https://t.cn/A6bFcDh4
大话设计模式之爱你:https://dwz.cn/wqO0MAy7