Mybatis-Plus 删除操作

测试删除

// 删除用户
@Test
void deleteById() {
   userMapper.deleteById(5L);
}
// 通过 id 批量删除用户
@Test
void deleteBatchIds() {
    userMapper.deleteBatchIds(Arrays.asList(5,6,7));
}
// 通过 map 批量删除用户
@Test
void deleteByMap() {
    HashMap map = new HashMap<>();
    map.put("name", "777");
    map.put("age", "77");
    userMapper.deleteByMap(map);
}

逻辑删除

物理删除: 从数据库中直接删除

逻辑删除: 在数据库中没有被移除,而是通过一个变量让他失效  deleted=0 > deleted=1

 

管理员可以查看被删除记录,防止数据丢失,类似于回收站!

1.在数据库中增加 deleted 字段(默认值为0)

Mybatis-Plus 删除操作_第1张图片

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

测试结果:

Mybatis-Plus 删除操作_第2张图片

记录依旧在数据库,但是 deleted 值发生了变化

 再执行查询这条信息,没有查到,查询的时候会自动过滤被逻辑删除的字段

你可能感兴趣的:(Mybatis-Plus,mysql,数据库,java)