删除操作
基本的删除任务:
//删单个
@Test
public void testDeleteById(){
userMapper.deleteById(1442376322269097986L);
}
//删多个
@Test
public void testDeleteBatchIds(){
userMapper.deleteBatchIds(Arrays.asList(1442376322269097985L,2L));
}
//条件删除
@Test
public void testD(){
HashMap<String, Object> map = new HashMap<>();
map.put("name","java");
map.put("age",18);
userMapper.deleteByMap(map);
}
逻辑删除
物理删除:从数据库中直接删除
逻辑删除:在数据库中没有被删除,而是通过一个变量来使他失效! deleted=0 ==> deleted=1
管理员可以查看被删除的记录!防止数据的丢失,类似于回收站!
测试一下
1、在数据表中增加一个deleted字段 int 默认0
2、实体类中添加对应属性
@TableLogic//逻辑删除注解
private Integer deleted;
3、配置!
- config - MyBatisPlusConfig
//逻辑删除组件
@Bean
public ISqlInjector sqlInjector(){
return new LogicSqlInjector();
}
4.application.properties
#配置逻辑删除 没删除的为0 删除的为1
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
4、测试一下删除
- 注意 其实走的是更新操作,会把deleted 的值 变成 1
- 再走查询操作 ,会把deleted 拼接上,查不到
- 数据库的数据还在,只不过deleted 的值变成 1
以上所有的CRUD及其扩展操作,我们都必须精通掌握!会大大提高工作写项目的效率!