逻辑删除和普通删除都是对数据库中数据进行删除操作,虽然都是删除操作,但它们还是有区别的
-
普通删除是直接删除数据,而逻辑删除是将该数据标记为已删除
-
普通删除不可恢复,删除就没了,逻辑删除可恢复,通过把标记改为未删除即可
-
逻辑删除更好的保证了数据的安全性和完整性,因为它本身真正的删除,避免了误删,非法删除等操作
-
普通删除可以释放数据空间,而逻辑删除不可释放数据空间,所以需要定期处理
总的来说,逻辑删除和普通删除各有优缺点,选择哪种方式取决于具体的需求和情况。在数据安全性和完整性要求较高的情况下,建议使用逻辑删除;在空间利用率要求较高的情况下,建议使用普通删除。
逻辑删除的步骤也很简单,下面是一个简单案例
1.在数据库表定义一个
deleted
字段,表示该记录是否已删除,0为删除,1已删除
2.在实体类表中deleted属性上添加
@TableLogic
注解:
@Data
public class User {
@TableId
private Long id;
private String name;
private Integer age;
@TableLogic
private Integer deleted;
}
3.在配置类上设置逻辑删除项:
mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted#字段名
logic-delete-value: 1 #删除的
logic-not-delete-value: 0 #未删除的
4.调用删除方法后它默认会将删除方法改为修改为 deleted=1,而不是直接删除
在配置类中的属于全局配置,还有一个局部的,比如值将User表的删除改为逻辑删除
@Data
public class User {
@TableId
private Long id;
private String name;
private Integer age;
/**
* 逻辑删除 0(false)未删除,1(true)已删除
*/
@TableLogic(value = "0",delval = "1")
private Integer deleted;
}
版权声明:本文为m0_56853686原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。