# MyBatis-Plus教程 - 10 逻辑删除
什么是逻辑删除?
物理删除 :删除数据的时候,是从数据库中直接删除数据;
逻辑删除 :删除数据的时候,没有从数据库删除数据,而是一列数据来标识数据被删除了,例如表中定义一个字段叫
deleted
,值为0表示数据有效,值为1表示数据已经被删除。
逻辑删除利于数据的恢复,但是会长期保留大量数据,查询的时候也需要过滤掉这些数据,对于带有唯一性约束的字段,逻辑删除的记录仍然存在,可能会影响插入新数据。使用的时候需要权衡利弊。
# 10.1 实现逻辑删除
下面看一下在 MyBatis-Plus 中如何实现逻辑删除。
# 1 数据库表添加字段
先给数据库表添加一个用于标识逻辑删除的字段,我这里起名叫 deleted
,名字自定义。
ALTER TABLE tb_user
ADD COLUMN deleted TINYINT(1) DEFAULT 0;
1
2
2
并设置默认值为0,表示没有被删除。
# 2 修改pojo
修改数据库表对应的实体类,添加 @TableLogic
注解,标识是用于逻辑删除的字段。
内容未完......