目录
物理删除与逻辑删除
物理删除:从数据库中直接移除
逻辑删除:没有真实的被删除掉,通过一个变量让该条记录失效。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代表删
此时我们执行删除操作,查看日志发现其本质走的是更新
查看数据库,可以看到第一条记录已经被删除
此时执行查询全部的操作,会发现第一条记录已经查不出来了。