mybatisplus----CRUD操作之删除操作(逻辑删除)
删除操作:
基本的删除操作;
@Test//根据id删除单个 void testDeletebyId(){ userMapper.deleteById("1327089990215172099"); } @Test//根据多个id删除多个数据 void testDeletebyArry(){ userMapper.deleteBatchIds(Arrays.asList(1327089990215172098L,1327089990215172097L)); } @Test//根据map条件删除 void testDeletebyMap(){ HashMap<String,Object> map=new HashMap<>(); map.put("id",1327089590540029953L); userMapper.deleteByMap(map); }
我们在工组中会遇到一些问题:逻辑删除!
逻辑删除
我们先来看一下物理删除和逻辑删除的概念:
物理删除:从数据库中直接移除
逻辑删除:再数据库中没有被移除,而是通过一个变量来让他失效!deleted =0=> deleted =1
实例:管理员可以查看被删除的记录!防止数据的丢失,类似于回收站!
测试步骤:
1在数据表中增加一个deleted字段:
2,在pojo实体类中添加相应的字段:
@TableLogic//逻辑删除注解
private Integer deleted;
3.配置类中添加组件
@Bean//逻辑删除组件 public ISqlInjector sqlInjector(){ return new LogicSqlInjector(); }
#配置逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
测试删除之后:
当我们执行查询操作的时候:
我们的查询条件都会有deleted=0的判断,所以被我们逻辑删除的记录是不同查询到的
可以看出其实id为1的记录并没有真正的删除,只是deleted字段修改成了1;
迎风少年