首页 > 其他分享 >mybatisplus批量插入,分批的功能

mybatisplus批量插入,分批的功能

时间:2024-05-07 11:00:38浏览次数:16  
标签:task mybatisplus 批量 分批 List entities tasks agentId

默认分批是1000

一般也就改成100-1000之间示业务而定

 比较简洁的一种方式如下

原代码

public Boolean insertTasks(List<TaskInfoEntity> tasks, String agentId) {
        // todo 分批
        List<AgentTaskRelationEntity> entities = tasks.stream()
            .map((Function<TaskInfoEntity, AgentTaskRelationEntity>) task -> AgentTaskRelationEntity.builder()
                .agentId(agentId)
                .taskId(task.getTaskId())
                .enabled(task.getEnabled())
                .build())
            .collect(Collectors.toList());
        return xxx.saveBatch(entities);
    }

修改后的代码

public Boolean insertTasks(List<TaskInfoEntity> tasks, String agentId) {
        List<List<TaskInfoEntity>> batches = Lists.partition(tasks, BATCH_SIZE);
        for (List<TaskInfoEntity> batch : batches) {
            List<AgentTaskRelationEntity> entities = batch.stream()
                .map((Function<TaskInfoEntity, AgentTaskRelationEntity>) task -> AgentTaskRelationEntity.builder()
                    .agentId(agentId)
                    .taskId(task.getTaskId())
                    .enabled(task.getEnabled())
                    .build())
                .collect(Collectors.toList());
            xxx.saveBatch(entities);
        }
        return true;
    }

 

标签:task,mybatisplus,批量,分批,List,entities,tasks,agentId
From: https://www.cnblogs.com/immersed-in-the-deep-sea/p/18176745

相关文章

  • PXE高效批量网络装机
    目录1.PXE概述2.部署PXE远程安装服务(1)安装并启用TFTP服务(2)安装并启用DHCP服务(3)准备Linux内核、初始化镜像文件(4)准备PXE引导程序(5)安装FTP服务,准备CentOS7安装源(6)配置启动菜单文件(7)验证PXE网络安装3.实现Kickstart无人值守安装(1)安装tftp-serverxinetddhcpvsftpd......
  • PXE批量安装服务器
    PXEPXE的全称是prebootexecuteenvironment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。pxe是通过网卡引导启动1.实现的硬件条件1.BIOS支持2.网卡支持(现在基本都已......
  • vue实现使用JSZip批量下载图片
    1importJSZipfrom"jszip";2import{saveAs}from'file-saver';3import$from'jquery'45//jszip打包下载图片6functionsaveImgZip(imgUrlArrs,typeTxt){7varimgUrlArr=[];//图片列表8imgUrlArr=imgUrlAr......
  • MybatisPlus的一些补充
    packagecom.dao.repository;importcom.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;importcom.baomidou.mybatisplus.extension.service.impl.ServiceImpl;importcom.dao.entity.MedicareCatalogLimitPriceInfoDO;importcom.dao.mapp......
  • mysql 的常用批量更新
    批量更新inupdatetableNamesetcolumnName=valuewherecolumnNamein(value1,value2,value3);有局限性,限制了更新的属性值必须一致。如果不一致,需要分开写多个update语句。insertinto...onduplicatekeyupdateinsertintotableName(columnName1,columnName2)......
  • 无规律快速批量重命名文件(夹)-固定命名
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 这里有1万多个文件,要命名成无规律的、不同的文件名 目标文件名里面的是上面已经修正数据的目标 一句话思路:提取全部目标名称,放到要改动的地方去打开工具,切换到“文件批量复制” 借助这个版块,提取......
  • 如何使用ISqlSugarClient进行数据访问,并实现了统一的批量依赖注入
    仓储层当前有接口IRepository<T>抽象类 BaseRepository<T>业务逻辑层有抽象类BaseBusiness<M,E>接口IBusiness<M,E>,其中使用ISqlSugarClient,其中还有E表示BaseEntity,M为BaseDto请用C#给出一个案例,支持不同表对应不同的业务逻辑层,然后不同仓储实例,不同表的业务,都实现......
  • 文件(夹)批量重命名数字、字母、日期、中文数字大写小写
     首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z目标是重命名下面5个文件(也可以是文件夹等,任意),从大写中文数字“贰”开始 打开工具,找到“文件批量复制”版块,快捷键Ctrl+5 找到右下角重命名按钮,点击打开 把那5个要重命名的文件拖入(也可以右边的按钮......
  • 如何批量复制多个文件到多个目录中(提取匹配法)
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z具体操作1、情景再现我这里创建了3个数字命名的文件夹和一些带有数字命名的图片文件。(这里仅做演示作用,实际操作的数量肯定巨大。)观察一下发现,图片分2种命名:一种是'数字.png',另一种是'-数字.png',前面带个了'-'......
  • 快速批量重命名文件(夹)
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z我这里处理这4个文本,实际可以处理任意数量的文本和文件夹1、打开工具,进入文件批量复制版块2、点击“重命名”3、把要重命名的文件或者文件夹全部拖入进去,这里我把文件改为"文本01.txt、文本02.txt"这样格式......