物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据
逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录
逻辑删除的使用场景:
①可以进行数据恢复
②有关联数据,不便删除
逻辑删除实现流程:
(1)数据库修改:添加 deleted字段
ALTERTABLE `user` ADD COLUMN `deleted` boolean DEFAULT false
(2)实体类修改:添加deleted 字段,并加上 @TableLogic 注解
@TableLogic
private Integer deleted;
(3)配置(可选)
application.properties 加入以下配置,此为默认值,如果你的默认值和mp默认的一样,该配置可无
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
测试
测试后发现,数据并没有被删除,deleted字段的值由0变成了1
测试后分析打印的sql语句,是一条update
PS:被删除前,数据的deleted 字段的值必须是 0,才能被选取出来执行逻辑删除的操作