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

历史文章(文章累计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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络渗透测试(TCP/IP)理论篇

TCP/IP体系 垂直服务:底层为高层服务 TCP/IP体系结构是一个分层的协议体系,由多个层次组成,每个层次都负责不同的功能。以下是TCP/IP体系结构的主要层次: 物理层(Physical Layer):该层负责传输…

milvus采坑一:启动服务就会挂掉

原因一 硬盘满了,Eric数据文件存储在硬盘上,当硬盘不足,它就会启动后就挂掉。 此时pymilvus连接一直是timeout。 解决方法:更换存储路径。

(十二)Flask重点之session

session 自我介绍&基本使用: 在Flask中,Session是一种用于在客户端和服务器之间存储和传输数据的机制。它允许您在用户与应用程序之间保持状态,并且可以存储和检索有关特定用户的信息。 Flask使用Werkzeug库提供的SecureCookie来实现S…

【活动回顾】ABeam News | 庆祝ABeam德硕与毕博中国战略合作十周年,关系再升级

国家会展中心 Date.2023.11.6 ​China International Import Expo 上周,ABeam作为毕博中国长期的战略合作伙伴,受邀出席了毕博中国在第六届进博会展台召开的战略合作十周年庆祝仪式。 本次战略合作庆祝仪式在进博会这个充满活力、创新与友谊的舞台举…

小红书软文种草怎么做,新产品上市软文创作技巧!

很多品牌有新品上市时都会借助软文传播来打开销路。因此,软文的质量几乎决定了新产品的营销结果。今天为大家分享下小红书软文种草怎么做,新产品上市软文创作技巧! 一、新品上市软文撰写的三大重点 1、确定软文撰写角度 新品上市软文&#xf…

calibre更新 环境变量设置

我这里是从别的地方copy过来的calibre,所以不用安装。 如果需要安装请参考: Caibre2022.3_17版本安装及遇到问题 - 梅希的日志 - EETOP 创芯网论坛 (原名:电子顶级开发网) -将copy过来的calibre放在原来calibre的位置。 打开工作路径下的.b…

1688阿里巴巴官方开放平台API接口获取商品详情、商品规格信息列表、价格、宝贝详情数据调用示例说明

商品详情API接口在电商平台和购物应用中的作用非常重要。它提供了获取商品详细信息的能力,帮助用户了解和选择合适的商品,同时也支持开发者进行竞品分析、市场研究和推广营销等工作,以提高用户体验和促进销售增长。 1688.item_get-获得1688商…

单片微机原理与接口技术期末复习

第二章: STC15F2K60S2 参数含义 (1)“STC”代表的含义是不能在应用中访问程序存储器,但设置了可单独访问的数据 Flash 区域。 (2)F :工作电源为5V。 (3)2k:片…

letcode::最小栈

最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。…

Wireshark网络工具

Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。 Wireshark是一个免费开源软件,不需要付费,免费使用,可以直接登陆到Wireshark的官网下载安装。 在windows环境中&#x…

IDEA运行 支付宝案例

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 🏷️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

SOLIDWORKS2024钣金及结构系统功能增强

SOLIDWORKS钣金和结构系统是大家比较熟悉的模块了,在新版本中钣金和结构系统功能也做了相应的优化。接下来让我们看看在SOLIDWORKS 2024中钣金和结构系统有哪些功能增强。 首先是钣金方面,我们先来看看新增的槽口延伸功能,在装配体零部件中创…

AIGC创作系统ChatGPT源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

DolphinDB 基于 Glibc 升级的性能优化实战案例

在高并发查询、查询需要涉及很多个分区的情况下,低版本的 glibc(低于2.23)会严重影响查询性能。需要升级 glibc 解决该问题优化性能。我们撰写了本文,通过 patchelf 工具修改可执行文件和动态库的 rpath,达到无需升级系…

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

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

“一键搜索,海量商品任你选!多平台聚合,购物更便捷!“

对于多平台聚合搜索,根据关键词取商品列表,您需要使用第三方服务或软件来实现。以下是一些可能的选择: 使用第三方聚合搜索工具:有些第三方工具可以聚合多个电商平台的商品数据,并提供统一的搜索接口。您可以使用这些…

Threejs_04 gui调试开发

threejs的快捷调试工具就是这玩意,那么如何使用呢?? 使用gui调试开发 引入gui实例 //导入lil.gui // import * as dat from "dat.gui"; // 旧 import { GUI } from "three/examples/jsm/libs/lil-gui.module.min.js";…

Linux搭建服务器环境,挂载SpringBoot+VUE项目

本地环境 Ubuntu20.04 服务器环境 CentOS7.6 购买服务器 以阿里云轻量服务器(适合初学者)为例,自行选择规格进行购买 购买完成后,获取服务器公网IP,同时重置密码,设置服务器密码 配置防火墙 点击实例ID&am…

(八)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (检索 Retrieval)

检索增强生成(RAG)的整体工作流程如下: 在构建检索增强生成 (RAG) 系统时,信息检索是核心环节。检索是指根据用户的问题去向量数据库中搜索与问题相关的文档内容,当我们访问和查询向量数据库时可能会运用到如下几种技术…

mybatisPlus的简单使用

封装实体类 编写Mapper service层 controller层