简单删除和逻辑删除
简单删除(使用多种方法可以达到目的)
@Test //普通删除
void testDelete(){
userMapper.deleteById(5L);
}
@Test //批量删除
void testDeleteByBatchIds(){
userMapper.deleteBatchIds(Arrays.asList(1524653412236517378L,1524657437254115330L));
}
@Test //根据条件删除之一 map
void testDeleteMap(){
HashMap<String, Object> map = new HashMap<>();
//条件在map中填写
map.put("name","小落");
userMapper.deleteByMap(map);
}
逻辑删除
什么是逻辑删除?
逻辑删除:自是将逻辑字段更新,并不是真正的删除数据库中的数据。这保证了数据的安全性
还有一个是物理删除,那什么是物理删除呢?
物理删除:真正意义上的删除,从数据库中删除数据
怎么使用逻辑删除呢?
- 创建逻辑字段
deleted字段 - 逻辑删除的在springBoot中的配置
# 物理删除
mybatis-plus.global-config.db-config.logic-delete-value=1
# 逻辑删除
mybatis-plus.global-config.db-config.logic-not-delete-value=0
- 在实体类中指定逻辑字段
@TableLogic
private Integer deleted;
- 测试逻辑删除
@Test //普通删除
void testDelete(){
userMapper.deleteById(8L);
}
- 运行时的sql语句
==> Preparing: UPDATE user SET deleted=1 WHERE id=? AND deleted=0
==> Parameters: 8(Long)
<== Updates: 1
- 我们发现,它并不是执行删除语句,而是执行更新逻辑字段语句