MybatisPlus逻辑删除

简介: MybatisPlus逻辑删除

官方文档:https://mp.baomidou.com/guide/logic-delete.html#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.2</version>
 </dependency>
只对自动注入的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()
附录:
 
逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。
如果你需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。

一、数据库设置逻辑删除字段

二、增加注解

三、配置默认值

如果你默认未删除也是0,可以不配置这个

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月前
|
计算机视觉
关于MybatisPlus的一个逻辑删除的基本常识
昨日写的删除订单的接口, 发现一个问题差点打碎我的三观...
65 0
|
1月前
|
SQL 数据库
MyBatisPlus之逻辑删除、MyBatisPlus解决并发问题的乐观锁机制
MyBatisPlus之逻辑删除、MyBatisPlus解决并发问题的乐观锁机制
32 2
|
1月前
|
SQL 存储 算法
Mybatis-Plus- CRUD接口-主键策略-自动填充和乐观锁-分页-逻辑删除-条件构造器和常用接口
Mybatis-Plus- CRUD接口-主键策略-自动填充和乐观锁-分页-逻辑删除-条件构造器和常用接口
|
10月前
|
SQL
Mybatis-plus 自定义SQL注入器查询@TableLogic 逻辑删除后的数据
Mybatis-plus使用@TableLogic注解进行逻辑删除数据后,在某些场景下,又需要查询该数据时,又不想写SQL。 自定义Mybatis-plus的SQL注入器一劳永逸的解决该问题
323 0
|
1月前
|
测试技术 数据库
深入解析MyBatis-Plus中的逻辑删除功能及实例
深入解析MyBatis-Plus中的逻辑删除功能及实例
375 0
|
1月前
|
SQL API 数据库
MyBatisPlus-多记录操作及逻辑删除
MyBatisPlus-多记录操作及逻辑删除
151 0
|
1月前
|
前端开发 Java 数据库连接
Mybatis-Plus 逻辑删除
Mybatis-Plus 逻辑删除
|
7月前
|
SQL
mybatis-plus逻辑删除简单实现
mybatis-plus逻辑删除简单实现
35 0
|
8月前
|
SQL 数据库
mybatisPlus之逻辑删除解读
mybatisPlus之逻辑删除解读
|
12月前
|
SQL 数据库 索引
CTO:半小时内处理好MyBatisPlus逻辑删除与唯一索引的兼容问题
需求背景 比如有张用户表,在插入或者更新数据的时候,我们需要 用户名称(username),不能重复。 我们首先考虑的是给该字段创建唯一索引