批量修改

本文探讨了在处理大量数据时,如何通过分批操作来提升效率。作者分享了一种将List集合切分成多个子集并批量更新的策略,以解决批量修改的效率问题。在XML中,使用了批量更新方法更新表中的记录,特别适用于Excel导入数据时处理重复数据的场景。此方法在保证功能的同时,显著提高了大数据量操作的性能。
摘要由CSDN通过智能技术生成

xml中批量修改

批量修改是之前用的最多的是利用存在的单个修改方法在一个List中循环调用,但是他也存在很多问题。批量修改我用的比较多的场景是excel导入时,重复数据时给修改为最后一次的值。但是当量级上去后效率问题就需要重新考虑了。
当量级较大时,考虑将List集合切割成多份,再批量修改。

代码块

service

	//每次插入或者更新数量
    private final static Integer TER_COUNT = 100;
    
	int len = updateList.size();
    for (int i = 0; (i + 1) * TER_COUNT <= len || ((i + 1) * TER_COUNT >= len && i * TER_COUNT < len); i++) {
            List<TExactsaleRestrict> subList = updateList.subList(i * TER_COUNT, ((i + 1) * TER_COUNT > len ? len : (i + 1) * TER_COUNT));
            dao.updateListBatch(subList);
    }

xml

<update id="updateListBatch" parameterType="java.util.List" >
		<foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
			update t_able
			<set>
				expirationtime = #{item.expirationtime,jdbcType=TIMESTAMP},
				updater = #{item.updater,jdbcType=DECIMAL},
				updatetime = #{item.updatetime,jdbcType=TIMESTAMP}
			</set>
			<where>
				id = #{item.id}
			</where>
		</foreach>
	</update>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值