1、逻辑删除和物理删除对比
逻辑删除:仅在使用人员的角度看来是删除了,实际的记录仍然存在,方便进行后续的数据恢复等操作。
物理删除:直接删除记录,可以节省物理空间,查询效率要比逻辑删除好些,因为记录数量少。
2、mybatis-plus实现方式
默认情况下,逻辑已删除值为1,逻辑未删除值为0。
可以在application.yml中进行修改:
mybatis-plus:
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
2.1 注解
为字段添加注解@TableLogic
@Field(type = FieldType.Integer)
@ApiModelProperty(value = "删除标识")
@TableLogic
private Integer delFlag;
3、使用
当我们使用mybatis-plus提供的api时,会自动帮我们拼接逻辑标识
3.1 当调用delete方法时
会执行如下sql
update table set delFlag = 1
3.2 当调用select方法时
当查询时,会自动拼接delFlag = 0
select * from table where delFlag = 0