myBatisPlus-删除
  TEZNKK3IfmPf 2023年11月14日 21 0

真实删除,将对应数据从数据库中删除,之后会查询不到此条被删除数据

根据 ID 删除数据

@Test
public void deleteById() {
int result = userMapper.deleteById(1L);
System.out.println(result);
}

myBatisPlus-删除

批量删除

@Test
public void batchDeleteById() {
int result = userMapper.deleteBatchIds(Arrays.asList(2, 3, 4));
System.out.println(result);
}

myBatisPlus-删除

简单条件查询删除

@Test
public void deleteByMap() {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("name", "BNTang");
paramMap.put("age", 23);

int result = userMapper.deleteByMap(paramMap);
System.out.println(result);
}

myBatisPlus-删除

逻辑删除

假删除,将对应数据中代表是否被删除字段状态修改为 “被删除状态”,之后在数据库中仍旧能看到此条数据记录

数据库中添加 ​​deleted​​ 字段

ALTER TABLE `mybatisplus_db`.`user` 
ADD COLUMN `deleted` int NULL AFTER `version`;

实体类中添加 ​​deleted​​ 字段

myBatisPlus-删除

@TableLogic
@TableField(fill = FieldFill.INSERT)
private Integer deleted;

元对象处理器接口添加 ​​deleted​​ 的 insert 默认值

myBatisPlus-删除

this.setFieldValByName("deleted", 0, metaObject);

修改 ​​application.properties​​ 加入配置

myBatisPlus-删除

此配置为配置默认值,如果你的默认值和 mp 默认的一样, 该配置可无

mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

注册 Bean 修改,​​Config.java​

/**
* mp逻辑删除的配置
*/
@Bean
public ISqlInjector iSqlInjector() {
return new LogicSqlInjector();
}

测试,测试流程为,首先调用我们之前的插入方法插入一条新的记录,然后在调用删除方法即可发现效果

myBatisPlus-删除

myBatisPlus-删除

myBatisPlus-删除

myBatisPlus-删除

注意事项

  • 添加逻辑删除后
  • 使用查询, 查询的内容只有标记为0的被查出来

myBatisPlus-删除

如上查询发现没有数据,在看下图我数据库中全部为 ​​null​​​ 所以没有,我在把这个 ​​null​​ 改为 0,运行结果如下

myBatisPlus-删除

myBatisPlus-删除

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: myBatisPlus-查询 下一篇: HttpServlet
  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   55   0   0 java数据库sql
  TEZNKK3IfmPf   2024年05月31日   26   0   0 sqlite数据库
  TEZNKK3IfmPf   2024年05月31日   31   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月31日   27   0   0 数据库mysql
TEZNKK3IfmPf