物理删除:从数据库中直接移除
逻辑删除:在数据库中没有被移除,而是通过一个变量让他失效
eg:管理员可以查看被删除的记录,防止数据丢失,例如回收站!
测试一下:
1.在表中添加一个deleted字段,初值设为0,表示未删除
2.在实体类中添加对应属性及注解
@TableLogic//逻辑删除
private Integer deleted;
3.在配置类中注册逻辑删除组件
//注册逻辑删除插件
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
4.在application.yaml中配置逻辑删除
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#配置逻辑删除
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
测试删除,发现执行的是Update deleted
测试查询 执行的是where xxx AND deleted=0