mybatisplus中逻辑删除有什么用
时间: 2024-02-29 16:55:25 浏览: 105
Mybatis-plus中的逻辑删除是指在数据库中不直接删除数据,而是在数据表中新增一个字段(如is_deleted),用于标识数据是否被删除。当执行删除操作时,只是将该字段的值进行修改,而不是将该数据从数据库中直接删除,这样做的好处是能够保留数据的完整性和可追溯性,方便后续的数据分析和处理。
逻辑删除的优点在于:可以减少数据的物理删除,避免误删重要数据,提高系统的可靠性;可以方便地进行数据恢复和审计;可以减轻数据库负担,提高数据库性能等。同时,逻辑删除也可以方便地实现历史数据查询和管理,符合数据保留的合规要求。
在Mybatis-plus中,逻辑删除可以通过注解@TableLogic实现。该注解可以标记在实体类的属性上,表示该属性为逻辑删除字段。同时,还可以通过配置全局逻辑删除属性、自定义逻辑删除 SQL 等方式灵活使用逻辑删除功能。
相关问题
mybatisplus忽略逻辑删除
Mybatis-Plus 是一个 Mybatis 的增强工具,支持快速开发,其中包括了逻辑删除功能。如果你想忽略逻辑删除,可以在使用 Mybatis-Plus 进行查询时,设置忽略逻辑删除的条件。
具体做法是在查询条件中设置 `last("and is_deleted = 0")`,这样查询时就会忽略逻辑删除的数据。示例代码如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username", "test_user")
.last("and is_deleted = 0");
List<User> userList = userMapper.selectList(queryWrapper);
```
其中 `is_deleted` 是你在实体类中定义的逻辑删除字段名。这样,就可以忽略逻辑删除的数据进行查询了。
mybatisplus的逻辑删除
MyBatisPlus提供了逻辑删除功能,它与物理删除有一些区别。在使用常规的逻辑删除方案时,我们需要考虑很多因素,为了提高效率,更推荐使用MyBatisPlus提供的逻辑删除方案。使用MyBatisPlus的逻辑删除功能非常简单。开启逻辑删除功能后,MyBatisPlus在删除、查询和更新时会自动加上条件deleted=0,即只对没有被删除的数据进行操作。在建表时,建议对deleted字段做默认限制,默认为0(未删除),插入数据时这个值可以不用设置。对于自己在xml文件中定义的接口方法,MyBatisPlus不会自动开启逻辑删除功能,需要我们自己维护逻辑删除功能。在查询时,MyBatisPlus会自动追加where条件过滤掉已删除的数据,并且使用wrapper.entity生成的where条件会忽略该字段。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文