程序地带

mybatis-plus删除实现、逻辑删除


mybatis-plus删除实现、逻辑删除
花开堪折直需折,莫待无花空折枝
基本删除

根据ID删除


删除id为1的用户
// 根据id删除
int i = userMapper.deleteById(1L);
System.out.println("删除结果:"+i);

在这里插入图片描述


根据ID批量删除


删除id为2,6的两个用户:
//根据id批量删除
int i2 = userMapper.deleteBatchIds(Arrays.asList(2, 6));

在这里插入图片描述


条件删除


删除name为Tom的用户通过Map来构造条件,key是数据库字段的名称,value是条件值
//结合Map实现删除的条件
Map<String,Object> conditionsMap=new HashMap<>();
conditionsMap.put("name","Tom");
int i3 = userMapper.deleteByMap(conditionsMap);

在这里插入图片描述


逻辑删除

逻辑删除:


不是真正意义上的删除,而是通过一个标识位来表示逻辑上已删除;逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除插入: 不作限制查找: 追加where条件过滤掉已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段更新: 追加where条件防止更新到已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段删除: 转变为 更新

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


mybatis-plus逻辑删除实现:
数据库增加标识字段

在这里插入图片描述


进行逻辑删除配置
mybatis-plus:
global-config:
db-config:
# logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
@TableLogic标注实体类中的删除标识属性(如果上一步配置了logic-delete-field就不进行这一步)
@TableLogic
private Integer deleted;

测试:


@Test
void delTest(){
// 根据id删除
int i = userMapper.deleteById(4L);
}

结果:是更新deleted字段而不是直接删除


在这里插入图片描述


测试查询:


@Test
void selectTest(){
List<User> users = userMapper.selectList(null);
}
数据库中仍然有id为4的数据记录

在这里插入图片描述


查询结果并没有

在这里插入图片描述


转载请注明来源,谢谢


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45302623/article/details/112689346

随机推荐

percona-xtrabackup2.3物理备份和还原

percona-xtrabackup2.3物理备份和还原一、xtrabackup介绍xtrabackup是运行在linux操作系统上的mysql物理备份工具,使用c语言开发。xtraba...

weixin_38339601 阅读(112)

IP代理的含义及作用

代理ip就是网上接受的中转站服务器,其他代理ip的ip地址跟我们平常使用的ip地址是一样的,不一样的是代理ip(可点击)需要通过代理服务器再将请...

全球HTTP 阅读(286)

8.docker-安装nginx配置静态资源服务器

学了docker之后练习使用docker搭建nginx静态资源服务器过程中用到的指令1.一句话运行nginx服务器,并配置好两个数据卷,其中一个是配置文件的数据卷映射&#x...

余生的观澜 阅读(544)

做excel上传时遇到的字体问题

今天被安排做老项目中,excel上传功能修改这一块。用的是poi。一些字段业务需要上传时为必填。自己试了一下,cell.getStringCellValue()方法...

lii3iil 阅读(306)

二叉树的(4种)遍历算法

浅谈二叉树的(4种)遍历算法遍历这棵二叉树无非有以下两种方式层次遍历普通遍历:从上到下从左到右在普通遍历方式中,整个遍历二叉树的过程中ÿ...

阿波罗尼斯圆不是圆 阅读(892)

VM虚拟机 CentOS安装

一.centos系统介绍CentOS(CommunityENTerpriseOperatingSystem)是Linux发行版之一,它是来自于RedHatEn...

T_Daniel_C 阅读(151)