java中使用事务控制循环更新插入数据与sqlMap中使用iterate循环union all效率比较

本文对比了两种将Excel数据导入数据库的方法:一种是逐条插入,另一种是利用ibatis的iterate特性进行批量处理。通过实验发现批量处理方式能显著提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用环境:读取excel中数据持久化写入数据库

涉及框架:spring+struts+ibatis

思路1:读取导入excel数据到hashMap中使用foreach遍历单条写入数据库

思路2:读取导入excel数据到hashMap中使用ibatis的iterate遍历hashMap使用union all拼接sql

总共测试数据:7575条

采用思路1:15分钟;

思路2:未知,一直测试中;

代码片段:

dao.update("datacheck.resultaudit.mergeAllFeedMess", bo);
// for (HashMap<String,String> oneMess:bo.getFeedMess())
// {
// bo.setOneFeedMess(oneMess);
//// //更新工单回复信息
//// dao.update("datacheck.resultaudit.updateFeedData", bo);
//// //插入工单回复信息
//// dao.insert("datacheck.resultaudit.saveFeedMess", bo);
//
// //更新插入工单回复信息
// dao.update("datacheck.resultaudit.mergeFeedMess", bo);
// }
Date date2 = new Date();


<!-- 插入更新所有工单回复信息 -->
<update id="mergeAllFeedMess" parameterClass="com.bonc.datacheck.bo.resultaudit.ResultAuditBO">
merge into busi_check_feed_back_detail t1
using (
<iterate conjunction="union all" property="feedMess" >
select 
#configId# "configId",
   d.acct_month,
d.rule_id,
d.rec_ord,




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值