mybatis-plus使用和原理剖析之逻辑删除
系列文章
mybatis-plus使用和原理剖析之条件构造器
文章目录
- 一、官方说明
- 二、使用方法
- 三、原理剖析
- 1.SQL注入器原理
- 2.SelectById
- 3.DeleteById
- 4.总结
- 四、风险评估
一、官方说明
逻辑删除
说明:
只对自动注入的 sql 起效:
- 插入: 不作限制
- 查找: 追加 where 条件过滤掉已删除数据,且使用 wrapper.entity 生成的 where 条件会忽略该字段
- 更新: 追加 where 条件防止更新到已删除数据,且使用 wrapper.entity 生成的 where 条件会忽略该字段
- 删除: 转变为 更新
例如:
- 删除:
update user set deleted=1 where id = 1 and deleted=0
- 查找:
select id,name,deleted from user where deleted=0
字段类型支持说明:
- 支持所有数据类型(推荐使用
Integer
,Boolean
,LocalDateTime
)- 如果数据库字段使用
datetime
,逻辑未删除值和已删除值支持配置为字符串null
,另一个值支持配置为函数来获取值如now()
附录:
- 逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。
- 如果你需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。
二、使用方法
- 全局配置
mybatis-plus:global-config:db-config:logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
- 局部配置
/*** 逻辑删除 1-已删除, 0-未删除*/@TableField(value = "is_deleted")@TableLogic(value = "0", delval = "1")private String isDeleted;
三、原理剖析
官方说明中很重要的一点是逻辑删除"只对自动注入的 sql 起效",也就是说XML中自定义的SQL不会自动拼接逻辑删除条件也不会将物理删除更改为逻辑删除。
为什么不可以像分页插件、多租户插件以及乐观锁插件一样通过SQL拦截器实现哪?问题在于逻辑删除本质是update语句,物理删除是delete语句,没有见过SQL拦截器直接改变DML 语句类型的(我孤陋寡闻也说不定
mybatis-plus使用和原理剖析之逻辑删除相关推荐
- mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充
MP特性 公共字段的自动填充功能 自动更新全局属性,比如创建的时间修改的时间,这样就不用每执行一次插入更新操作都带上一个set大大节省了很多效率,从而也避免为了因为时间格式的不统一问题. 为了输出日志 ...
- 统计学习方法|逻辑斯蒂原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- fastText的原理剖析
fastText的原理剖析 1. fastText的模型架构 fastText的架构非常简单,有三层:输入层.隐含层.输出层(Hierarchical Softmax) 输入层:是对文档embeddi ...
- 彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
视觉三维重建 = 定位定姿 + 稠密重建 + surface reconstruction +纹理贴图.三维重建技术是计算机视觉的重要技术之一,基于视觉的三维重建技术通过深度数据获取.预处理.点云配准 ...
- Elasticsearch分布式一致性原理剖析(一)-节点篇
2019独角兽企业重金招聘Python工程师标准>>> 摘要: ES目前是最流行的开源分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强大的搜索查询能力.学习其搜索原理, ...
- 统计学习方法|支持向量机(SVM)原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- 统计学习方法|朴素贝叶斯原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- 统计学习方法|K近邻原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- 统计学习方法|感知机原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- 开源 serverless 产品原理剖析 - Kubeless
背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...
最新文章
- centos6.5原生系统修改ceph-mon 的ELF来让其加载低版本glibc库函数
- 腾讯微博快速有效增加广播转播量的方法与技巧
- SAP产品增强技术回顾
- openssl ssl_write 写错误
- 设置TOMCAT SESSIONID 字符长度和生成算法
- String类基础的那些事!
- 【离散数学】代数系统 第六章 格与布尔代数(4) 布尔代数
- QT IDE下载及安装(最新版本)
- CAD格式刷怎么用?CAD格式刷使用技巧
- 腾讯 AI Lab招聘算法实习生
- 解决两台路由器串联上网问题
- 转载:如何使用RFT自动打开IE
- 【小白笔记】EAST:Learning Policies for Adaptive Tracking with Deep Feature Cascades
- 51单片机电机测速程序c语言,基于51单片机光电编码器测速.doc
- 【ppt入门教程】Win7系统怎样实现ppt双屏显示不同的内容
- Android中的Gradle之配置及构建优化
- eps格式流程图制作流程
- NER任务的精确评估指标P、R、F1
- 浅谈为什么倒序遍历List删除元素没有问题
- Oracle存储过程基本语法和存储过程的各种实例
热门文章