逻辑删除的意思就是只是在逻辑上删除了,在数据库里它还是存在的只是被打上了删除标记。
步骤1: 引入Mybatis Plus 3.3.0 的依赖
<!--MYBATISPLUS啟動器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
</dependency>
步骤2:逻辑删除配置
# mybatis
mybatis-plus:
type-aliases-package: com.hieasy.erp.domain
mapper-locations: classpath:mappers/**/*.xml
global-config:
#0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: 0
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 0
#驼峰下划线转换
db-column-underline: true
#刷新mapper 调试神器
refresh-mapper: true
#数据库大写下划线转换
#capital-mode: true
#逻辑删除配置
db-config:
logic-delete-field: delFlag
logic-delete-value: 1
logic-not-delete-value: 0
步骤3:实体类
@Data
@TableName("erp_yuangong")
public class Yuangong {
@TableId(type = IdType.AUTO)
private Long ygId; //ID
private Long tenantId; //租户ID
@ApiModelProperty(required = true)
private String ygdm; //代码
@ApiModelProperty(required = true)
private String ygmc; //名称
private String ygpym; //拼音码
private String birthday; //生日
private String telephone; //电话
private String address; //地址
private String remark; //备注
@TableLogic
private Integer delFlag;
}
步骤4:删除操作
@Override
public int deleteByIds(String ids) {
return ygMapper.deleteBatchIds(MyStrUtil.strToLongArr(ids));
}
逻辑删除配置后,实际执行的是更新操作
UPDATE erp_yuangong SET del_flag=1 WHERE yg_id=? AND del_flag=0
查询的时候会自动添加上 del_flag = ?这个条件
SELECT * FROM erp_yuangong WHERE yg_id=? AND del_flag=0
验证下结果:
将 del_flag 改成0之后再查询的结果