9.逻辑删除

suaxi
2021-04-05 / 0 评论 / 65 阅读 / 正在检测是否收录...

逻辑删除

  • 物理删除:从数据库中直接移除
  • 逻辑删除:数据库中没有移除,而是通过一个变量来使该条数据失效


1.数据库增加delete字段,默认值为0

1.数据库添加delete字段.png


2.实体类增加属性

@TableLogic
private int deleted;


3.注册Bean

//逻辑删除
@Bean
public ISqlInjector sqlInjector(){
    return new LogicSqlInjector();
}


4.application.yml配置

mybatis-plus:
  global-config:
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0


5.单元测试

//逻辑删除测试
@Test
void logicDeleteTest(){
    userMapper.deleteById(1L);
    //sql:UPDATE user SET deleted=1 WHERE id=? AND deleted=0

    User user = userMapper.selectById(1L);
    System.out.println(user);
    //输出结果为null
    //查询时会自动过滤delete=1的值
}
0

评论 (0)

取消