逻辑删除

删除数据 我们可以使用物理删除,也可以使用逻辑删除。

物理删除指的就是直接从数据库中删除数据。

逻辑删除指的就是修改数据的某个字段,使数据被标识为已删除的状态。

数据本身还是在数据库的,只是查询的时候过滤掉了

逻辑删除方式可以帮助我们保留数据 以便恢复。

Mybatis Plus也提供了逻辑删除,以简化开发

使用

数据库设置

首先需要我们在数据同表中增加这么一个字段,来表示数据是否被逻辑删除

并推荐在给其设置表示未删除的 默认值

例如:数据库新增字段 is_delete,我们使用0 表示未删除,1表示已删除

所以 指定默认值0

代码层配置

在项目配置文件中添加如下配置

如果你的默认值和mp默认的一样,该配置可无

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

在项目实体类的逻辑字段上添加@TableLogic注解

//其属性值会默认获取全局配置
@TableLogic(value = "0", delval = "1")
//插入时填充字段 数据库层面已设置默认值可不写
@TableField(fill = FieldFill.INSERT)
private Integer deleteFlag;