测试删除
// 删除用户
@Test
void deleteById() {
userMapper.deleteById(5L);
}
// 通过 id 批量删除用户
@Test
void deleteBatchIds() {
userMapper.deleteBatchIds(Arrays.asList(5,6,7));
}
// 通过 map 批量删除用户
@Test
void deleteByMap() {
HashMap<String, Object> map = new HashMap<>();
map.put("name", "777");
map.put("age", "77");
userMapper.deleteByMap(map);
}
逻辑删除
物理删除: 从数据库中直接删除
逻辑删除: 在数据库中没有被移除,而是通过一个变量让他失效 deleted=0 > deleted=1
管理员可以查看被删除记录,防止数据丢失,类似于回收站!
1.在数据库中增加 deleted 字段(默认值为0)
2.实体类加入对应的字段
@TableLogic //逻辑删除
private Integer deleted;
3.配置逻辑删除 ( MybatisPlusConfig.java 和 application.properties 文件)
// 逻辑删除组件!
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
# 逻辑已删除值(默认为 1)
mybatis-plus.global-config.db-config.logic-delete-value=1
# 逻辑未删除值(默认为 0)
mybatis-plus.global-config.db-config.logic-not-delete-value=0
测试结果:
记录依旧在数据库,但是 deleted 值发生了变化
再执行查询这条信息,没有查到,查询的时候会自动过滤被逻辑删除的字段