MyBatisPlus逻辑删除

  • Post author:
  • Post category:其他



逻辑删除和普通删除都是对数据库中数据进行删除操作,虽然都是删除操作,但它们还是有区别的


  • 普通删除是直接删除数据,而逻辑删除是将该数据标记为已删除

  • 普通删除不可恢复,删除就没了,逻辑删除可恢复,通过把标记改为未删除即可

  • 逻辑删除更好的保证了数据的安全性和完整性,因为它本身真正的删除,避免了误删,非法删除等操作

  • 普通删除可以释放数据空间,而逻辑删除不可释放数据空间,所以需要定期处理


总的来说,逻辑删除和普通删除各有优缺点,选择哪种方式取决于具体的需求和情况。在数据安全性和完整性要求较高的情况下,建议使用逻辑删除;在空间利用率要求较高的情况下,建议使用普通删除。

逻辑删除的步骤也很简单,下面是一个简单案例

1.在数据库表定义一个

deleted

字段,表示该记录是否已删除,0为删除,1已删除

2.在实体类表中deleted属性上添加

@TableLogic

注解:

@Data
public class User {
    @TableId
    private Long id;
    private String name;
    private Integer age;

    @TableLogic
    private Integer deleted;
}

3.在配置类上设置逻辑删除项:

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted#字段名
      logic-delete-value: 1 #删除的
      logic-not-delete-value: 0 #未删除的

4.调用删除方法后它默认会将删除方法改为修改为 deleted=1,而不是直接删除

在配置类中的属于全局配置,还有一个局部的,比如值将User表的删除改为逻辑删除

@Data
public class User {
    @TableId
    private Long id;
    private String name;
    private Integer age;

     /**
     * 逻辑删除 0(false)未删除,1(true)已删除
     */
    @TableLogic(value = "0",delval = "1")
    private Integer deleted;
}



版权声明:本文为m0_56853686原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。