批量插入 java_批量插入

/**

* 批量插入

* @param mergerDtos

* @param mergerId

*/

private void batchSaveMergerItem(List mergerDtos, Long mergerId){

if (CollectionUtils.isNotEmpty(mergerDtos)) {

for (MergerDto mergerDto : mergerDtos) {

List ids = mergerDto.getIds();

int size = ids.size();

List batch = initList(size,BizConstant.DB_MAX_BATCH_NUM);

boolean flushFlag = false;

for (int i = 0; i < size; i++) {

if ( ((i+1) % BizConstant.DB_MAX_BATCH_NUM == 0 )

||( i == size -1)) {

flushFlag = true;

}

TrMergerMemberItemEo trMergerMemberItemEo = new TrMergerMemberItemEo();

trMergerMemberItemEo.setMergerId(mergerId);

trMergerMemberItemEo.setTableName(mergerDto.getTableName());

trMergerMemberItemEo.setBizId(ids.get(i));

batch.add(trMergerMemberItemEo);

if (flushFlag) {

trMergerMemberItemDas.insertBatch(batch);

if (i != size -1) {

flushFlag = false;

batch = initList(size,BizConstant.DB_MAX_BATCH_NUM);

}

}

}

}

}

}

private List initList(int size, int maxSize){

List list ;

if (size > maxSize) {

list = new ArrayList<>(maxSize);

} else {

list = new ArrayList<>(size);

}

return list;

}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值