逻辑删除
- 物理删除:从数据库中直接移除
- 逻辑删除:数据库中没有移除,而是通过一个变量来使该条数据失效
1.数据库增加delete字段,默认值为0
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)