别再写delete了!MybatisPlus的@TableLogic注解,让你的删除操作更安全(Spring Boot实战)
凌晨三点,运维群里突然炸开了锅——某核心业务表被误清空,而备份脚本因为磁盘空间不足已经失效两周。这种"物理删除惨案"在技术圈几乎每月都会上演,而今天我们要介绍的@TableLogic注解,正是MyBatis-Plus为数据安全筑起的一道防火墙。
逻辑删除的本质是用状态标记替代物理删除,就像把文件放进回收站而非直接粉碎。当你在字段上添加@TableLogic后,所有delete操作会自动转变为update操作,将指定字段值从"未删除状态"改为"已删除状态"。这种机制特别适合:
- 金融交易记录(合规要求至少保存5年)
- 医疗健康数据(误删可能引发法律纠纷)
- 用户行为日志(分析需要历史全量数据)
1. 从物理删除到逻辑删除的范式转变
传统物理删除就像用橡皮擦掉铅笔字迹,而逻辑删除则是用红色马克笔做删除标记。我们通过一个用户表案例对比两种方式:
-- 物理删除(危险操作)
DELETE FROM user WHERE id = 1;
-- 逻辑删除(安全操作)
UPDATE user SET deleted = 1 WHERE id = 1;
关键差异对比表:
| 维度 | 物理删除 | 逻辑删除 |
|---|---|---|
| 数据恢复 | 需依赖备份 | 直接修改状态字段即可 |

&spm=1001.2101.3001.5002&articleId=99044915&d=1&t=3&u=fb9e4b1deeb94113b0c9f4b3816a2565)
359

被折叠的 条评论
为什么被折叠?



