目录
物理删除与逻辑删除
物理删除:从数据库中直接移除
逻辑删除:没有真实的被删除掉,通过一个变量让该条记录失效。delete=0 ==>delete = 1
物理删除
//根据id删除
@Test
public void testDeleteById(){
userMapper.deleteById(1L);
}
//根据id批量删除
@Test
public void testDeleteBachId(){
userMapper.deleteBatchIds(Arrays.asList(1L,2L));
}
//通过map删除
@Test
public void testDeleteMap(){
HashMap<String,Object> map = new HashMap<>();
map.put("name","大熊猫1");
userMapper.deleteByMap(map);
}
逻辑删除
新增一个deleted字段,设置默认值为0

实体类中增加属性
@TableLogic
private Integer deleted;
在config中注册组件
//注册逻辑删除组件
@Bean
public ISqlInjector sqlInjector(){
return new LogicSqlInjector();
}
配置逻辑删除规则,0代表不删,1代表删

此时我们执行删除操作,查看日志发现其本质走的是更新

查看数据库,可以看到第一条记录已经被删除

此时执行查询全部的操作,会发现第一条记录已经查不出来了。

本文介绍了MybatisPlus中的物理删除和逻辑删除操作。物理删除直接从数据库移除记录,而逻辑删除则通过添加deleted字段并更新其值使记录失效。在逻辑删除中,实体类增加deleted属性,配置逻辑删除规则,并在执行删除操作时,实际上执行的是更新操作。经过逻辑删除后,查询时受影响的记录将不再显示。
5462

被折叠的 条评论
为什么被折叠?



