文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mybatis-Plus批量添加或修改数据的三种方式

2023-10-12 06:32

关注

SpringBoot批量添加或修改数据的三种方式

方式一.Mybatis-plus 提供的 saveOrUpdateBatch

提供的方法 是遍历每一个元素,判断主键是否存在,如果存在则做更新,不存在添加

image-20230411142159127

image-20230411142521452

方式二.分组数据再批量添加或修改

先获取表中所有的主键 ,然后 判断是否已存在,存在更新,不存在添加

        queryWrapper = new QueryWrapper<>();        queryWrapper.select("PROC_INSTANCEID");        List bpmProcInstanceList = iBpmProcInstanceDaoService.list(queryWrapper);        //获取所有主键        List procList = bpmProcInstanceList.stream().map(BpmProcInstance::getProcInstanceid).collect(Collectors.toList());        //分组        Map> booleanListMap = bpmProcInstances.stream().collect(Collectors.groupingBy(b -> {            return procList.contains(b.getProcInstanceid());        }));        //true 则更新  false 修改        iBpmProcInstanceDaoService.updateBatchById( booleanListMap.get(true));        iBpmProcInstanceDaoService.saveBatch( booleanListMap.get(false));

方式三. 利用MySQL的on duplicate key update

on duplicate key update 是Mysql特有的语法,如下图所示,表中id 为主键

image-20230411150035835

再插入id为1的数据,则提示主键已存在

改成如下SQL,则当主键重复时,将更新 字段 name 的值

INSERT into  provider values (1,'w') ON DUPLICATE KEY UPDATE `name` = 'w';

因此我们可以编写如下的XML映射语句

 insert into 表名 (需插入的字段)        values                #插入的数据                        ON DUPLICATE KEY UPDATE        # 当主键重复时,需要更新的字段以及对应的数据        字段名1=VALUES(字段名1),        字段名2 =VALUES(字段名2)        ......        

来源地址:https://blog.csdn.net/JAVAlife2021/article/details/130084813

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯