逻辑删除
逻辑删除就是在数据表中新建一个字段,删除时更改为0或1。并没有真的把数据给删掉.
!!!当程序中运行删除操作时触发逻辑删除,从表中删除数据的操作不会生效,但需要写上删除代码。
@Override
public void removeMenuByIds(List<Long> asList) {
//mybatis-puls中的删除方法(用于触发逻辑删除)
baseMapper.deleteBatchIds(asList);
}
1.mybatis-plus版本在3.1.1以上,可省略一步配置。
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
2.application.yml配置文件,配置全局逻辑删除规则 1为已删除,0为没有删除
mybatis-plus:
global-config:
db-config:
id-type: auto #自增主键
logic-delete-value: 1 #已删除
logic-not-delete-value: 0 #没删除
3.实体类绑定逻辑删除字段注解
@TableLogic //逻辑删除注解
private Integer showStatus;
注:如果某一张表不想跟随全局逻辑删除的规则,也可在注解上自定义。执行时优先注解的规则
/**
* value不删除
* delval 删除
*/
@TableLogic(value = "1",delval = "0") //逻辑删除注解
private Integer showStatus;