MyBatis-Plus
是一个强大的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。其中,逻辑删除是 MyBatis-Plus
的一个实用特性,允许你在不实际删除记录的情况下,将某些记录标记为已删除状态。
1. 在实体类中添加逻辑删除字段
首先,你需要在你的实体类中添加一个字段来表示逻辑删除状态。通常,这个字段会被命名为 deleted
或类似的名称,并使用 Integer
或 Boolean
类型。
2. 在 application.yml
或 application.properties
中配置逻辑删除
你需要告诉 MyBatis-Plus
哪个字段是逻辑删除字段,以及它的未删除和已删除值。
3. 使用 MyBatis-Plus
的删除方法
现在,当你使用 MyBatis-Plus
的删除方法(如 removeById
、removeByMap
等)时,它实际上会更新逻辑删除字段而不是真正地从数据库中删除记录。
4. 自定义SQL语句时的注意事项
如果你在使用自定义的 SQL 语句或 XML 映射文件,并希望这些语句也支持逻辑删除,你需要确保你的查询语句排除了那些 deleted
字段为已删除值的记录。
5. (可选)在插件中启用或禁用逻辑删除
在某些情况下,你可能希望在某些操作中禁用逻辑删除。你可以通过配置 ISqlInjector
来实现这一点。
注意事项:
- 确保你的数据库表结构中有一个与实体类中对应的逻辑删除字段。
- 逻辑删除仅是一种标记记录为“已删除”的方法,并不会真正从数据库中移除数据。因此,在需要严格的数据安全性或隐私性的场景中,应谨慎使用。
- 在进行数据库迁移或备份时,请确保逻辑删除的记录得到正确处理。