首页 > 其他分享 >替代saveBatch

替代saveBatch

时间:2025-01-23 17:34:20浏览次数:1  
标签:sqlBuilder batchStart batchEnd saveBatch extendDetailUserList param 替代 append

  public Boolean extendDetailUser(SalaryAccountingItemParam param){
//获取上期已选人员关联的项目
List<SalaryAccountingItemDetailUser> extendDetailUserList = this.list(Wrappers.<SalaryAccountingItemDetailUser>lambdaQuery()
.eq(SalaryAccountingItemDetailUser::getSalaryAccountingId, param.getLastSalaryAccountingId())
.eq(SalaryAccountingItemDetailUser::getYearMonth, param.getLastYearMonth()));
if (extendDetailUserList.isEmpty()) {
return true; // 如果没有数据,则直接返回 true
}
//大于1000条分批保存
int batchStart = 0;
int batchEnd;
while ((batchEnd = Math.min(batchStart + 1000, extendDetailUserList.size())) > batchStart) {
List<SalaryAccountingItemDetailUser> batch = extendDetailUserList.subList(batchStart, batchEnd);
StringBuilder sqlBuilder = new StringBuilder("INSERT INTO salary_accounting_item_detail_user ( idCard, itemDetailId, yearMonth, salaryAccountingId, userName ) VALUES ");
for (SalaryAccountingItemDetailUser salaryAccountingItemDetailUser : batch){
sqlBuilder.append("('");
sqlBuilder.append(salaryAccountingItemDetailUser.getIdCard());
sqlBuilder.append("',");
sqlBuilder.append(salaryAccountingItemDetailUser.getItemDetailId());
sqlBuilder.append(",'");
sqlBuilder.append(param.getYearMonth());
sqlBuilder.append("',");
sqlBuilder.append(param.getId());
sqlBuilder.append(",'");
sqlBuilder.append(salaryAccountingItemDetailUser.getUserName());
sqlBuilder.append("'),");
}
// 移除最后一个逗号
sqlBuilder.setLength(sqlBuilder.length() - 1);
jdbcTemplate.batchUpdate(sqlBuilder.toString()); // 执行批量操作
batchStart = batchEnd;
}
return true;
}

标签:sqlBuilder,batchStart,batchEnd,saveBatch,extendDetailUserList,param,替代,append
From: https://www.cnblogs.com/deepalley/p/18688247

相关文章

  • 2025年带你探索Trello、JIRA替代品:8款顶级项目管理工具全面解析!
    在项目管理的广阔领域中,Trello和JIRA一直是备受瞩目的工具,但随着市场的不断发展,还有许多优秀的替代品值得我们去探索。本文将为你详细解析8款顶级项目管理工具,它们分别是禅道、Trello、Asana、MicrosoftProject、Wrike、Monday.com、Basecamp、Teambition。这些工具各有千秋,涵盖......
  • 12000台虚拟机大迁移!又一家公司宣布弃用VMware,自制KVM平台替代
    曾几何时,提起虚拟化,VMware是一家绕不开躲不过的公司,它也是第一个虚拟化x86架构并取得商业成功的公司,备受业界关注。可惜的是,自从2023年11月,VMware被博通以610亿美元收购,后者对其进行大刀阔斧地改革,并把VMware原有云服务的“永久许可证”改为了订阅制度之后,遭到了不......
  • 单件模式的困境与替代方案
    引言简要介绍单件模式的定义和常见用途。提出单件模式在实际开发中存在的问题,尤其是多线程环境下的复杂性。说明本文将探讨单件模式的困境,并提供几种替代方案。1.单件模式的困境1.1多线程场景下的复杂性问题:多线程环境下,单件模式的实现需要考虑线程安全问题。双重......
  • ADCP414、ADCP416四通道125MSPS速率ADC替代AD9653、AD9253,可提供ZZKK证明
    ADCP416-125/105/80是一款4通道、16位、125/105/80MSPS模数转换器(ADC),内置片内采样保持电路,专门针对低成本、低功耗、小尺寸和易用性而设计。该产品的转换速率最高可达125MSPS,具有杰出的动态性能与低功耗特性,适合比较重视小封装尺寸的应用。ADCP416-125特性和优势--电源供电:1.......
  • MyBatisPlus替代繁琐的SQL语句(文章一)。爽!!!
    前置条件:能够创建SpringBoot项目(不会的可以查看主页之前的文章)内容比较多,会分为四篇文章对MyBatisPlus剖析文章一:标准数据层开发文章二:DQL编程控制文章三:DML编程控制文章四:细节补充步骤一:创建SpringBoot工程,勾选数据库驱动依赖步骤二:依赖管理(springboot2的2.5.0版本支持M......
  • kafka 根据 raft 协议实现了 KRaft 替代 zk
    Kafka是一个分布式流处理平台,传统上使用ApacheZooKeeper(ZK)来管理和协调分布式集群中的集群元数据和配置。ZooKeeper在Kafka中主要用于以下任务:集群元数据管理:存储和更新Kafka代理(broker)和主题的信息。分区领导者选举:帮助选举Kafka分区的领导者。集群成员管理:跟踪活......
  • Pinia 替代 localStorage 的常规使用场景
    在现代Vue工程化项目中,通常推荐使用Pinia(或Vuex)来管理状态,而不是直接使用localStorage。我来解释下具体原因和使用方式:1、为什么使用Pinia替代localStorage://使用Pinia的优势:-状态集中管理,更容易维护-支持响应式-支持开发工具调试-支持TypeScript-可以配......
  • 在 .NET 9 中使用 Scalar 替代 Swagger
    前言在.NET9发布以后ASP.NETCore官方团队发布公告已经将Swashbuckle.AspNetCore(一个为ASP.NETCoreAPI提供Swagger工具的项目)从ASP.NETCoreWebAPI模板中移除,这意味着以后我们创建WebAPI项目的时候不会再自动生成SwaggerAPI文档了。那么今天咱们一起来试试把我们的Easy......
  • 国内地图商用收费?可以考虑替代方案
    这两年高德、百度、腾讯的官方工作人员陆续打电话给各开发者,三家统一收取5万一年的商业授权费,不交钱就封号,不给用。他们的条款对于日调用量300万的用户和对于像我们这种日调用量几百几千的用户,都统一一刀切。现在这样的大环境,很多公司或个人开发者的收益连维护生活都艰难,这5万......
  • (倍福授权)国产EtherCAT从站控制芯片P2P替代ET1100
    EtherCAT技术是德国的倍福自动化(Beckhoff)开发,处于EtherCAT技术协会(ETG)框架之下,是一项开放但不开源的技术,任何相关设备的开发,都需要向其获取相关授权。就目前来看,获得Beckhoff授权的厂商并不多,而且大部分都是海外半导体厂商。不过近几年,随着国内EtherCAT市场的增长,情况开始有所改......