Mybatis Plus通过@TableLogic注解和逻辑删除插件实现逻辑删除的功能。
1. @TableLogic注解
在要实现逻辑删除的字段上,添加@TableLogic注解:
@TableLogic
private Integer deleted;
Mybatis Plus会自动识别该字段。
2. 配置逻辑删除插件
在mybatis-plus.yaml配置文件中:
mybatis-plus:
# 启用逻辑删除插件
plugins:
- logicDelete
3. 设置逻辑删除值
配置逻辑删除和未删除的值:
logic-delete:
deleted-value: 1
un_deleted-value: 0
4. 实现删除
// 实际实现逻辑删除
userMapper.deleteById(1);
deleteById方法,只是将deleted字段修改为deleted-value。
5. 查询数据
// 自动排除逻辑删除的记录
userMapper.selectList(null);
查询时,会自动排除对应deleted字段的值。
6. 还原数据
user.setDeleted(0);
userMapper.updateById(user);
修改deleted字段为un_deleted-value,实现逻辑还原。
总的来说,Mybatis Plus通过:
- @TableLogic注解指定逻辑删除字段
- 逻辑删除插件实现解析处理逻辑
- 在删除时,修改对应字段值
- 在查询时,自动排除逻辑删除数据
从而实现了逻辑删除的功能。