【MyBatis Plus 逻辑删除详解】
文章目录
- MyBatis Plus 逻辑删除详解
- 前言
- 什么是逻辑删除?
- MyBatis Plus 中的逻辑删除
- 1. 添加逻辑删除字段
- 2. 实体类的配置
- 3. 配置 MyBatis Plus
- 4. 使用逻辑删除
- 5. 查询逻辑删除的记录
MyBatis Plus 逻辑删除详解
前言
MyBatis Plus 是一个强大的持久化框架,它在基于 MyBatis 的基础上提供了更多便捷的功能,其中之一就是逻辑删除。逻辑删除是一种常见的数据处理方式,它允许你在不实际删除数据库记录的情况下,标记记录为已删除状态。
什么是逻辑删除?
逻辑删除,也称为软删除,是一种常见的数据管理方法。它通过在数据库表中添加一个用于标识记录状态的字段(通常是一个布尔值或枚举值),来代替物理删除记录。这样做的好处是可以保留被删除记录的历史信息,同时避免了实际删除记录可能引发的数据丢失问题。
MyBatis Plus 中的逻辑删除
MyBatis Plus 提供了逻辑删除的内置支持。下面是如何在 MyBatis Plus 中启用逻辑删除功能的步骤。
1. 添加逻辑删除字段
首先,在数据表中添加一个用于标识记录状态的字段。这个字段通常是一个整数或枚举类型,表示记录的状态,例如 0 表示正常,1 表示删除。假设我们的表中有一个 status 字段用于表示记录状态。
2. 实体类的配置
在实体类中需要使用 MyBatis Plus 的 @TableLogic 注解来标记逻辑删除字段。标识 MyBatis Plus 哪个字段用于逻辑删除。
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;@Data
@TableName("your_table_name")
public class YourEntity {// 其他字段...@TableLogicprivate Integer status;
}
3. 配置 MyBatis Plus
在 MyBatis Plus 的配置文件中,需要启用逻辑删除的功能。通过在配置文件中添加如下配置来实现:
<configuration><!-- 其他配置 --><global-config><db-config><!-- 其他配置 --><logic-delete-value>1</logic-delete-value><logic-not-delete-value>0</logic-not-delete-value></db-config></global-config>
</configuration>
上述配置表示 MyBatis Plus 使用 1 来表示已删除状态,使用 0 来表示未删除状态。
4. 使用逻辑删除
执行删除操作时,MyBatis Plus 会自动将逻辑删除字段更新为已删除状态,而不是实际从数据库中删除记录。例如:
yourEntityMapper.deleteById(id);
这会更新 status 字段为 1,表示已删除。
5. 查询逻辑删除的记录
要查询逻辑删除的记录,可以使用 MyBatis Plus 的 select 方法,并指定查询条件,例如:
List<YourEntity> deletedRecords = yourEntityMapper.selectList(Wrappers.<YourEntity>lambdaQuery().eq(YourEntity::getStatus, 1));
这将返回所有 status 为 1 的记录,即已删除记录。
相关文章:
【MyBatis Plus 逻辑删除详解】
文章目录 MyBatis Plus 逻辑删除详解前言什么是逻辑删除?MyBatis Plus 中的逻辑删除1. 添加逻辑删除字段2. 实体类的配置3. 配置 MyBatis Plus4. 使用逻辑删除5. 查询逻辑删除的记录 MyBatis Plus 逻辑删除详解 前言 MyBatis Plus 是一个强大的持久化框架…...
latex问题汇总
latex问题汇总 环境问题1 环境 texlive2024 TeXstudio 4.8.6 (git 4.8.6) 问题1 编译过程有如下错 ! Misplaced alignment tab character &. l.173 International Conference on Infrared &Millimeter Waves, 2004: 667--... I cant figure out why you would wa…...
基于Redis实现限流
限流尽可能在满足需求的情况下越简单越好! 1、基于Redsi的increment方法实现固定窗口限流 Redis的increment方法保证并发线程安全窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大…...
力扣练习之确定两个字符串是否接近
目录 题目: 题解: 详细题解 题目: 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2࿱…...
大三下找C++开发实习的感受分享
目录 找实习的过程 阶段一:投简历 阶段二:准备面试 阶段三:面试中 阶段四:面试结束后 面试真题 总结 找实习的过程 阶段一:投简历 第一次找实习还是使用BOSS这个软件进行投简历,这个过程其实挺难说…...
基于hive的电信离线用户的行为分析系统
标题:基于hive的电信离线用户的行为分析系统 内容:1.摘要 随着电信行业的快速发展,用户行为数据呈现出海量、复杂的特点。为了深入了解用户行为模式,提升电信服务质量和精准营销能力,本研究旨在构建基于 Hive 的电信离线用户行为分析系统。通…...
Makefile——make工具编译STM32工程
一、Makefile相关指令 1.1、变量 符号含义替换追加:恒等于 1.2、隐含规则 符号含义%.o任意的.o文件*.o所有的.o文件 1.3、通配符 符号含义$^所有依赖文件$所有目标文件$<所有依赖文件的第一个文件 1.4、编译器指令常用参数功能说明 符号含义举例-E预处理,…...
Java EE 进阶:SpringBoot 配置⽂件
什么是配置文件 “配置文件”是一个用来保护程序或者系统设置信息的文件,它的作用是让程序在启动或者运行中,能够读取这些设置并按预期进行工作,而不需要手动的设置。 Spring Boot 配置文件 设置服务器端口、编码格式配置数据库连接控制日…...
【redis】五种数据类型和编码方式
文章目录 五种数据类型编码方式stringhashlistsetzset查询内部编码 五种数据类型 字符串:Java 中的 String哈希:Java 中的 HashMap列表:Java 中的 List集合:Java 中的 Set有序集合:除了存 member 之外,还有…...
基于Python的电商销售数据分析与可视化系统实
一、系统架构设计 1.1系统流程图 #mermaid-svg-Pdo9oZWrVHNuOoTT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-icon{fill:#552222;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-text{fill:#5…...
色板在数据可视化中的创新应用
色板在数据可视化中的创新应用:基于色彩感知理论的优化实践 引言 在数据可视化领域,色彩编码系统的设计已成为决定信息传递效能的核心要素。根据《Nature》期刊2024年发布的视觉认知研究,人类大脑对色彩的识别速度比形状快40%,色…...
EB-Cable许可管理中的数据安全与隐私保护
在数字化时代,数据安全与隐私保护已成为企业关注的重中之重。作为专业的电缆管理软件,EB-Cable许可管理不仅在功能丰富和操作便捷方面表现出色,更在数据安全与隐私保护方面为用户提供了坚实的保障。本文将详细介绍EB-Cable许可管理在数据安全…...
解决ubuntu(jetpack)系统下系统盘存储不够的
以下是可以安全清理的内容及操作步骤,按优先级和风险从低到高排序: 1. 清理日志文件(低风险) /var/log/syslog (7.1G) # 清空syslog文件(不删除文件本身) sudo truncate -s 0 /var/log/syslog# 或限制sys…...
【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)
效果一览 代码获取私信博主基于麻雀搜索算法(SSA)的无人机路径规划(Matlab) 一、算法背景与核心思想 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种受麻雀群体觅食行为启发的元启发式算法࿰…...
STM32_GPIO系统外设学习
按照STM32MCUWIKI、参考手册的外设介绍----->CubeF4的软件包中相关的Exmple代码----->CubeMX设置截图加深理解记忆 资料链接:嵌入式开发_硬软件的环境搭建 我的飞书文档-GPIO篇 如果觉得内容不错,欢迎给我的飞书文档点赞。同时如果有什么意见或…...
使用Java爬虫根据关键词获取衣联网商品列表:实战指南
在电商领域,通过关键词搜索商品并获取商品列表是常见的需求。衣联网作为知名的电商平台,提供了丰富的服装商品资源。本文将详细介绍如何使用Java编写爬虫程序,根据关键词获取衣联网商品列表,并确保爬虫行为符合平台规范。 一、环…...
【操作系统安全】任务1:操作系统部署
目录 一、VMware Workstation Pro 17 部署 二、VMware Workstation 联网方式 三、VMware 虚拟机安装流程 四、操作系统介绍 五、Kali 操作系统安装 六、Windows 系统安装 七、Windows 系统网络配置 八、Linux 网络配置 CSDN 原创主页:不羁https://blog.csd…...
下载安装启动 VMware 个人免费版本
一、进入官网并登录账号下载软件 进入官网 [ https://www.vmware.com ],点击Products,将页面划到最底下,点击 “SEE DESKTOP HYPERVISORS”按钮。 然后点击 Desktop hypevisor ,会出现如下界面,可以根据自己的操作系…...
C#+AForge 实现视频录制
C#AForge 实现视频录制 在C#中,使用AForge 库实现视频录制功能是一个比较直接的过程。AForge 是一个开源的.NET框架,提供了许多用于处理图像和视频的类库。 开发步骤 安装AForge库 首先,确保你的项目中已经安装了 AForge.Video和AFo…...
doris:外表统计信息
外表统计信息的收集方式和收集内容与内表基本一致,目前支持对 Hive,Iceberg 和 Hudi 等外部表的收集。 自 2.0.3 版本之后,Hive 外表支持了自动和采样收集。 注意事项 HMS 类型的 Iceberg 和 Hudi 外表,以及 JDBC 外表只支持手…...
SAP SD学习笔记31 - 销售BOM
上一篇讲 前受金处理(预付款处理)。 SAP SD学习笔记29 - 前受金处理(预收款处理)_fplt 付款申请与sd 数据表的关联关系-CSDN博客 本章继续讲SAP SD模块的其他知识:销售BOM。 销售BOM在现场还是会用到的。 目录 1,销售BOM概要 2,受注BOM的…...
大数据学习(63)- Zookeeper详解
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦🤞 …...
嵌入式八股C语言---面向对象篇
面向对象与面向过程 面向过程 就是把整个业务逻辑分成多个步骤,每步或每一个功能都可以使用一个函数来实现面向对象 对象是类的实例化,此时一个类就内部有属性和相应的方法 封装 在C语言里实现封装就是实现一个结构体,里面包括的成员变量和函数指针,然后在构造函数中,为结构体…...
Android UI性能优化
Android UI性能优化 一、UI性能优化基础 1.1 UI渲染原理 Android系统的UI渲染是通过一个被称为"UI线程"或"主线程"的单线程模型来完成的。系统会以16ms(约60fps)的固定时间间隔发送VSYNC信号,触发UI的渲染流程。如果一帧的处理时间超过16ms,就会出现丢…...
C# ListView设置标题头背景颜色和字体颜色
一、向ListView 添加数据 for (int i 1; i < 5; i) {ListViewItem litem new ListViewItem("data:"i);lv_WarnList.Items.Add(litem); }如果需要在ListView中绑定实体类对象的话,需要将数据放在Tag属性里 for (int i 1; i < 5; i) {AngleData …...
数字统计(信息学奥赛一本通-1096)
【题目描述】 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数…...
嵌入式 ARM Linux 系统构成(6):应用层(Application Layer)
目录 一、应用层概述 二、应用层的核心组成 2.1 主应用程序(Main Applications) 2.2 系统服务(System Services) 2.3 用户界面(User Interface) 2.4 脚本与自动化工具 2.5 第三方库与框架 2.6 通信…...
【HTML】一、基础标签
文章目录 1、开发环境准备2、html介绍3、html基本骨架4、标签的关系5、常用标签5.1 标题5.2 段落5.3 换行与水平线5.4 文本格式化标签5.5 图像标签5.6 超链接标签5.7 音频标签5.8 视频标签 6、路径7、网页制作 1、开发环境准备 在编辑器中写代码,在浏览器中看效果 …...
区块链与去中心化技术
区块链与去中心化技术 核心进展 区块链从加密货币(如比特币)扩展至智能合约和供应链管理。以太坊2.0引入分片技术提升交易吞吐量,而零知识证明(ZKP)增强了隐私保护15。企业级应用如IBM的Food Trust平台通过区块链追踪…...
Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动出错
导致报错的操作 在已安装了oracle11g版本后再安装oracle9i客户端在安装了oracle11g后修改了主机名称 解决方法 修改配置文件的主机名称 可能是因为你的Oracle文件配置的主机名称出了问题,在你的Oarcle安装路径D:\app\lenovo\product\11.2.0\dbhome_1\NETWORK\ADM…...
