15篇MyBatis-Plus系列集合篇「值得收藏学习」

news2024/9/22 5:41:20

历史文章(文章累计490+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

MyBatis-Plus实现逻辑删除[MyBatis-Plus系列] - 492篇

Mybatis-Plus通用枚举功能 [MyBatis-Plus系列] - 第493篇

Mybatis-Plus自动填充功能配置和使用 [MyBatis-Plus系列] - 第494篇

引言

在当今的软件开发世界中,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1229232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

向量数据库——AI时代的基座

1.前言 向量数据库在构建基于大语言模型的行业智能应用中扮演着重要角色。大模型虽然能回答一般性问题,但在垂直领域服务中,其知识深度、准确度和时效性有限。为了解决这一问题,企业可以利用向量数据库结合大模型和自有知识资产,…

金属压块液压打包机比例阀放大器

液压打包机是机电一体化产品,主要由机械系统、液压控制系统、上料系统与动力系统等组成。整个打包过程由压包、回程、提箱、转箱、出包上行、出包下行、接包等辅助时间组成。市场上液压打包机主要分为卧式与立式两种,立式废纸打包机的体积比较小&#xf…

释放固态继电器的力量:主要优势和应用

固态继电器(SolidStateRelay,缩写SSR),是由微电子电路,分立电子器件,电力电子功率器件组成的无触点开关。用隔离器件实现了控制端与负载端的隔离。固态继电器的输入端用微小的控制信号,达到直接…

wvp gb28181 pro 推流列表功能

界面截图 功能说明 功能演示 客户端推流 ​​​​​​​手机端,使用芯象软件进行推流,支持ios、android 推流地址使用如下格式: rtsp://192.168.4.116:554/live/123?secret035c73f7-bb6b-4889-a715-d9eb2d1925cc 详细操作教程参考 【腾讯文…

外贸自建站什么意思?自建独立网站的好处?

外贸自建站的含义是什么?如何区分自建站和独立站? 随着全球贸易的不断发展,越来越多的企业开始关注外贸自建站。那么,“外贸自建站”到底是什么意思呢?海洋建站将为您详细解析这个问题,带您深入了解这一新…

Latex学习

二 实例 1. \Delta_{w}\frac{\partial l}{\partial w_{i1}}weight:\frac{\partial l}{\partial x_{i1}} 效果如下 其中对于希腊字母的大小写来说,可以参考: 【LaTeX 语法】字母表示 ( 大写、小写、异体 希腊字母 | 粗体字母 | 花体字母 )_latex字母_韩…

【2023.11】香色闺阁最新书源!这个月新写了6条,条条高质!

写源背景 平时用香色闺阁比较多,以前的很多源都失效了,导入几百几千条,在换源时也常常出现耗时长、还没几条可用源的情况。 基于此,就自己去学习了下怎样写源。目前初步有了点“成绩” ,那也免费分享给需要的伙伴们体…

java多线程中的Fork和Join

文章目录 1. 简介2. 使用 1. 简介 Fork/Join是JDK 1.7中加入的新的线程池的实现,它体现的使用分治的思想,适用于能够进行任务拆分的cpu密集型任务。所谓的任务拆分,是将一个大任务拆分为算法上相同的小任务,直到不能拆分可以直接…

不想花大价钱?这10款替代Axure的平替软件更划算!

Axure是许多产品经理和设计师进入快速原型设计的首选工具,但Axure的使用成本相对较高,学习曲线陡峭,许多设计师正在寻找可以取代Axure的原型设计工具,虽然现在有很多可选的设计工具,但质量不均匀,可以取代A…

C进阶---文件操作

我们在日常使用电脑保存文件时,其目的就是为了便于以后查看、修改、更新等操作;保存在文件中可以使数据持久化,所以今天我们家里学习文件的相关操作。 一、文件 1.1什么是文件 磁盘上的文件是文件。 在程序设计中,文件一般分…

【ArcGIS】批量对栅格图像按要素掩膜提取

要把一张大的栅格图裁成分省或者分县市的栅格集,一般是用ArcGIS里的按掩膜提取。 但是有的时候所要求的栅格集量非常大,所以用代码来做批量掩膜(按字段)会非常方便。 import arcpy , shutil , os from arcpy import env from ar…

【GEE】基于GEE进行非监督学习

1 简介与摘要 之前写了多季节叠加的监督学习,所以这次简单写一个非监督学习吧。。 这次为了简单明了,就不整那么多虚的了,在这里我不叠图层了,有需要的可以参考前一篇博客自己添加输入的图层。 2 制作输入影像 首先&#xff0c…

C++大神之路——环境篇

序 在我还在做后端的时候,当时程序员圈里就有个梗很火,说的是当时几种常用编程语言的鄙视链:做C的鄙视做Java的,做Java的鄙视做C#的,而我很不幸,当时在鄙视链最底层。一开始只是当个笑话听听就算了&#x…

IC卡操作软件支持PN532

IC卡操作软件,在知道卡片密码的情况下,可以对卡片修改数据,格式化清卡,修改UID卡和CUID卡的卡号,锁UFUID卡等 卡片dump文件拖进软件,即可打开文件,编辑修改文件,写卡,就…

一文读懂:为什么GPU比CPU更快?

大家好,我是老猫,猫头鹰的猫。 在过去几十年里,GPU变得越来越流行,尤其是最近ChatGPT大火,背后训练大模型的硬件设备GPU达到了一片难求的地步。 你有没有好奇:为什么必须要用GPU?CPU被淘汰了吗…

Polygon Miden VM中的哈希函数对比

1. 引言 在Polygon Miden VM中,使用了多个不同的哈希函数: 1)“传统”哈希函数,如BLAKE3:对STARK之外的性能进行了优化。2)algebraic哈希函数,如Rescue Prime:对STARK内部优化&…

idea项目中java类名出现带 j 小红点,如何解决?

目录 一、问题描述 二、问题解决方案 1、寻找异常问题 2、解决方案 2.1常规操作方法 2.2 快速操作方法 一、问题描述 一打开idea的java项目,发现所有的文件边上都有带J的大红点 虽然,在 git bash 中进行编译时无异常。 但是视觉上给人的感受就是…

非遗拓鱼丨以传统文化助力守护美丽长江

长江生物多样性极为丰富,是中华民族赖以生存的生命之源,值得人类更多的关注与保护。为传播非遗文化、宣传长江生态保护,积极响应野生动物保护宣传的号召,以非遗手工助力守护长江,11月18日,在重庆市陆海国际…

[解决] 问题:ImportError: cannot import name ‘Callable‘ from ‘collections‘

问题 我在运行yolov8的代码时,出现了ImportError: cannot import name Callable from collections的错误 原因 版本问题:以下collections的方法都在Python3.10版本后被取消了 ["Awaitable", "Coroutine", "AsyncIterable", "A…

数据资产入表,给企业带来的机遇和挑战

作为推动数字经济发展的核心要素,近年来,数据资源对于企业特别是相关数据企业的价值和作用正日益凸显。 数据资产入表之后,能够为企业经营带来实质性的收益。“随着数据资产的纳入,企业的资产也出现了新标的。在资产负债表中&…