传统的删除是物理上的删除,数据库的数据经过物理删除之后,没有任何记录,在大数据时代每一条记录都是很重要的,这样造成了极大的浪费。而逻辑删除只是通过标志位的方法标志删除,在数据库中还有原有的记录。
1. 在表中添加deleted标志字段
添加deleted字段,在对应的实体类添加属性并添加注释。我这里使用自动填充的方式将deleted插入时填充0,mp中默认的是0代表存在,1代表逻辑删除,
#mybatis-plus.global-config.db-config.logic-delete-value=1 #mybatis-plus.global-config.db-config.logic-not-delete-value=0
通过这两行可以修改默认值。
@TableLogic//表示逻辑删除
@TableLogic//表示逻辑删除
@TableField(fill = FieldFill.INSERT)//自动填充
private Integer deleted;
2. 配置逻辑删除插件
/**
* 逻辑删除插件
*/
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
3. 测试
1).插入
后面deleted标志位为0
2).删除
后面deleted标志位为1
3).查询所有
mp实现了逻辑删除时,查询SQL语句进行条件查询WHERE deleted=0