MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作

news/2024/11/14 13:50:31/

一、Mybatis-Plus 多记录操作

        按照主键删除多条记录

List<Long> ids= Arrays.asList(new Long[]{2,3})
userDao.deleteBatchIds(ids);

示例代码如下:

    @Testvoid testDelete(){//删除指定多条数据List<Long> list = new ArrayList<>();list.add(1402551342481838081L);list.add(1402553134049501186L);list.add(1402553619611430913L);userDao.deleteBatchIds(list);}


        根据主键查询多条记录
List<Long> ids= Arrays.asList(new Long[]{2,3});
List<User> userList = userDao.selectBatchIds(ids);

示例代码如下:

    @Testvoid testDelete(){//查询指定多条数据List<Long> list = new ArrayList<>();list.add(1L);list.add(3L);list.add(4L);userDao.selectBatchIds(list);}

 二、Mybatis-Plus 逻辑删除      

        如下图,描述的是房屋中介公司销售业绩数据,右边表是人员信息,左边表是开单信息,
员工1张业绩离职了,数据不需要留了,执行了delete操作,执行完,左边表的关联数据成为垃圾数据,年底如果统计报表,如下图,已经删除了,或者是脏数据,无法读取。问题出现了,统计数据不对,日常删除操作对业务会有伤害性,会将数据从数据库中删除。

如何解决? 我们不应该删除数据,在数据后面加个字段,如果是1就代表删除了。

删除操作业务问题:业务数据从数据库中丢弃。

逻辑删除:为数据设置是否可用状态字段,删除时设置状态字段为不可用状态,数据保留在数据库中。

逻辑删除操作步骤:

步骤一、数据库表中添加逻辑删除标记字段
        数据库添加字段名 deleted  类型 int 长度 1

步骤二、实体类中添加对应字段,并设定当前字段为逻辑删除标记字段

步骤三、配置逻辑删除字面值

@Datapublic class User {private Long id;//逻辑删除字段,标记当前记录是否被删除@TableLogic(value = "0" ,delval = "1")private Integer deleted;
}

配置逻辑删除字面值全局配置:

mybatis-plus:global-config:db-config:logic-delete-field: deletedlogic-not-delete-value: 0 logic-delete-value: 1

        逻辑删除开启后,执行的删除语句变成了更新语句,操作完以后会用deleted字段值标记数据是否被删除,并且标记被删除的数据,是不参与到Mabatis-Plus的API查询的过程中的,如果想查这些数据通过自己编写SQL语句。


http://www.ppmy.cn/news/1546015.html

相关文章

HiveMetastore 的架构简析

HiveMetastore 的架构简析 Hive Metastore 是 Hive 元数据管理的服务。可以把元数据存储在数据库中。对外通过 api 访问。 hive_metastore.thrift 对外提供的 Thrift 接口定义在文件 standalone-metastore/src/main/thrift/hive_metastore.thrift 中。 内容包括用到的结构体…

java-web-web后端知识小结

spring框架三大核心: IOC--控制反转 DI---依赖注入 AOP--面向切面编程 web开发技术小结 1.过滤器,JWT令牌 2.三层架构 IOC, DI AOP, 全局异常处理, 事务管理 mybatis 3.数据操作与存储 mysql 阿里云OSS(云存储) 各个技术的归属: 1.过滤器, cookie,session--javaWeb 2.JWT, 阿里…

目标检测YOLO实战应用案例100讲-基于深度学习的人眼视线检测

目录 知识储备 视觉深度的测定 基本知识 视觉检测中的关键技术 单眼感知景深 内部摄像机距离的效果 Face ID 与3D传感技术 什么是Face ID? 3D传感技术原理 主动测距法 被动测距法 基于深度学习的人眼视线检测代码 数据集读取与预处理 卷积神经网络模型构建 模型…

css | padding vs margin

前置知识 height是作用域内容(content)区域的 padding和margin用百分比的时候是怎么算的&#xff1f;父元素的宽度。注意&#xff0c;不是根据父元素相应的属性&#xff0c;就是父亲的width 自身的height是0 以下代码&#xff0c;外面盒子是100x10的&#xff0c;里面的widt…

【数据结构算法】归并排序

归并排序时间里在归并操作上的一种 归并排序&#xff08;Merge Sort&#xff09;是建立在归并操作上的一种高效排序算法。该算法是分治法&#xff08;Divide and Conquer&#xff09;的典型应用。归并排序的核心思想是将已有序的子序列合并&#xff0c;得到完全有序的序列。 …

pycharm 使用

前期配置 1、检查 Python 安装路径&#xff1a; 确保 E:\tools\Pyn392_EN_x64\python.exe 是你正确的 Python 安装路径。你可以在终端或命令提示符中运行这个命令&#xff0c;确保能正常找到Python。 E:\tools\Pyn392_EN_x64\python.exe --version2、检查 pip 是否正确安装&…

京津冀自动驾驶技术行业盛会|2025北京自动驾驶技术展会

“自动驾驶技术”已经成为全球汽车产业的焦点之一。在这个充满创新与变革的时代&#xff0c;“2025北京国际自动驾驶技术展览会”拟定于6月份在北京亦创国际会展中心盛大开幕&#xff0c;为全球自动驾驶技术领域的专业人士、企业以及爱好者们提供了一个交流与展示的平台。作为一…

FPGA实现串口升级及MultiBoot(五)通过约束脚本添加IPROG实例

本文目录索引 一个指令和三种方式通过约束脚本添加Golden位流工程MultiBoot位流工程验证example1总结代码缩略词索引: K7:Kintex 7V7:Vertex 7A7:Artix 7MB:MicroBlaze上一篇文章种总结了MultiBoot 关键技术,分为:一个指令、二种位流、三种方式、四样错误。针对以上四句话我…