mybatis-plus逻辑删除

时间:2022-07-23
本文章向大家介绍mybatis-plus逻辑删除,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

mybatis-plus:逻辑删除

不做真正的删除,在查询时添加一个where条件

例如在某宝上有一条不可描述的购买信息不想被看到,你要删除他,但是从平台的角度考虑是不能随便就彻底的删除掉数据的,那么有没有一个两个都可以满足的解决方式呢,答案是有的——逻辑删除,不做真正意义的删除,在数据库中用一个字段做专门的标记,原本查询的sql语句就变成了这样:

select * from tableName where 原先的查询条件 and 用来标记的字段=设定的用于标记删除的值

而用户的删除行为也变成了update: update tablename set 用来标记的字段=设定的用于标记删除的值 where 用于删除的条件

配置

在application.yml配置文件中配置

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)

修改数据库字段

新增一个deleted字段,注意不能使用delete会报错

修改实体类Car并在该属性上打上@TableLogic注解

@TableLogic
    private Integer deleted;

运行测试:

//根据id删除
@Test
void testDeleteById(){
    autoMapper.deleteById(25);
}

运行测试方法,deleted字段被更新 以后的查找方法会被加上一个where条件 deleted=0;

从逻辑上实现了数据的删除