mybatis plus 物理删除
时间: 2023-11-17 17:57:50 浏览: 214
Mybatis Plus中的物理删除是指直接从数据库中删除数据记录,不会保留任何痕迹。相比之下,逻辑删除只是将数据记录的状态标记为“被删除状态”,并不会真正从数据库中删除数据记录。在实际应用中,物理删除一般用于删除不需要保留的数据记录,而逻辑删除则用于删除需要保留历史记录的数据。在Mybatis Plus中,可以通过调用delete方法实现物理删除。
相关问题
mybatis plus 删除
MyBatis Plus提供了多种删除数据的方法。其中,物理删除是直接从数据库中删除数据,而逻辑删除是将对应数据中心代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录。
对于物理删除,MyBatis Plus提供了以下方法:
1. 使用Mapper的deleteById方法可以根据主键删除数据,例如:mapper.deleteById(1)。
2. 使用Mapper的deleteBatchIds方法可以批量删除数据,例如:mapper.deleteBatchIds(Arrays.asList(1,2,3))。
3. 使用Wrapper对象进行条件删除,例如:
```
LambdaQueryWrapper<Bank> wrapper = new LambdaQueryWrapper<Bank>();
wrapper.between(Bank::getId,3,5);
bankMapper.delete(wrapper);
```
对于逻辑删除,MyBatis Plus的实现比较简单,只需要在实体类的逻辑删除属性上添加@TableLogic注解,例如:
```
@TableLogic
private Integer deleted;
```
MyBatis-Plus 需要物理删除
MyBatis-Plus是一个基于MyBatis的简化持久层开发工具,它提供了更多的便利性和扩展性。当涉及到数据删除操作时,通常默认的行为是在数据库层面软删除,也就是通过添加一个is_delete字段(如 deleted_at)来标记某个记录是否已被删除,而不是直接从表中移除。
如果你想实现物理删除,即真正的从数据库表中删除数据,MyBatis-Plus并没有直接提供这样的功能,因为这并不符合它的设计原则,即尽可能地避免操作底层数据库。但是,你可以通过自定义SQL或者手动编写JPA或者Hibernate等 ORM框架的方式来实现物理删除:
1. **自定义方法**:在Mapper接口中添加一个方法,比如`deleteByIdWith physicDelete`,并配置具体的 SQL 删除语句。
```java
@Mapper
public interface UserMapper {
@Delete("DELETE FROM user WHERE id = #{id}")
int deleteById(int id);
// 物理删除
@Delete("DELETE FROM user WHERE id = #{id} AND is_delete = 0")
int deleteUserByIdWithPhysicDelete(int id);
}
```
2. **启用全局配置**:如果所有实体都需要物理删除,可以在全局配置文件中设置删除策略。
3. **手动代码控制**:在业务逻辑中,判断需要物理删除再进行调用相应的方法。
需要注意的是,物理删除可能导致一些潜在问题,例如事务回滚后的恢复困难、数据审计跟踪复杂等。所以在实际项目中,除非有特殊需求,否则推荐继续使用默认的软删除方式。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)