物理删除:是从数据库中直接删除
逻辑删除:在数据库中没有被删除,而是通过一个变量让他失效 delete =0 =>delete =1
管理员可以查看被删除的记录,防止数据的丢失,类似于一个回收站!!!
1、测试一下,在数据表中新增一个字段
2、在实体类中同步属性,并添加相应的注解配置
@TableLogic
private int deleted;
3、在application中配置
mybatis-plus:
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
# logic-delete-field: deleted 配置这一项可以省略实体类注解,做全局逻辑删除
4、逻辑删除测试
@RequestMapping("deleted")
public void deleted(Student student){
studentService.deleteById(5);
}
从上图来看,我们已将删除的对象给伪删除掉(注:delete=1
)。
现在在通过查询看一下。
可以看到id=5的数据已经消失,但是在下图可以看到在数据库中id=5的数据还在,只不过是delete=1了,所以他才不显示了。