一、删除操作
1.通过id实现单条记录删除
@Test
public void testDeleteById(){
userMapper.deleteById(1517523560665468932L);
}
2. 实现批量删除
@Test
public void testDeleteByBatchId(){
userMapper.deleteBatchIds(Arrays.asList(123456L,1517523560665468930L));
}
?
?
3.通过条件删除
@Test
public void testDeleteBymap(){
HashMap<String, Object> map = new HashMap<>();
map.put("name","大头");
userMapper.deleteByMap(map);
}
二、逻辑删除
物理删除:从数据库中直接被移除
逻辑删除:在数据库中没有被移除。而是通过变量让他失效
防止数据的丢失,类似于回收站
1. 在数据表中,增加delete字段
2.在实体类中增加属性
@TableLogic //逻辑删除
private Integer deleted;
?3. 配置!
//逻辑删除插件
@Bean
public ISqlInjector sqlInjector(){
return new LogicSqlInjector();
}
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag
# 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1
# 逻辑已删除值(默认为 1)
logic-not-delete-value: 0
# 逻辑未删除值(默认为 0)
执行后走的是更新操作,执行删除操作后,记录还在,但是默认值改变!查询的时候自动过滤被逻辑删除的记录。
|