JavaWeb使用QueryRunner的batch(String sql, Object[][] params)方法批量插入数据操作

一、初始化list集合,准备要插入的实体类放入list集合中;

List<BankVoucher> bankVoucherList = new ArrayList<BankVoucher>();

二、通过数据库查询数据并给实体类赋值

注:每个工程查询数据库的内容不一样,就不在这写了

bankVoucher.setOrgCode(orgCode);
bankVoucher.setJoinCode1(joinCode1);
bankVoucher.setJoinCode2(joinCode2);
bankVoucher.setDate(date);
bankVoucher.setTime(time);
bankVoucher.setTransAmt(transAmt);
bankVoucher.setTransCurrcyCode(transCurrcyCode);
bankVoucher.setLendFlag(lendFlag);
bankVoucher.setTransType(transType);
bankVoucher.setTransNo(transNo);
bankVoucher.setPosNo(posNo);

三、把实体类放入集合中

bankVoucherList.add(bankVoucher);

四、取集合中的数据放入batch(String sql,Obejct[][] params)的第二个参数params二维数组中;

注:二维数组中的值对应sql中要保存的字段;

Object[][] paramsBankVour = new Object[bankVoucherList.size()][];
for (int i = 0; i < bankVoucherList.size(); i++) {
    BankVoucher bankVoucher1 = bankVoucherList.get(i);
    paramsBankVour[i] = new Object[11];
    paramsBankVour[i][0] = bankVoucher1.getOrgCode();
    paramsBankVour[i][1] = bankVoucher1.getJoinCode1();
    paramsBankVour[i][2] = bankVoucher1.getJoinCode2();
    paramsBankVour[i][3] = bankVoucher1.getDate();
    paramsBankVour[i][4] = bankVoucher1.getTime();
    paramsBankVour[i][5] = bankVoucher1.getTransAmt();
    paramsBankVour[i][6] = bankVoucher1.getTransCurrcyCode();
    paramsBankVour[i][7] = bankVoucher1.getLendFlag();
    paramsBankVour[i][8] = bankVoucher1.getTransType();
    paramsBankVour[i][9] = bankVoucher1.getTransNo();
    paramsBankVour[i][10] = bankVoucher1.getPosNo();
}
riskglService.addBatchBankVoucher(paramsBankVour);

五、提交sql,插入数据

public int[] addBatchBankVoucher(Object[][] params) throws SQLException {
    String sql = "insert into zhgjg_bank_voucher(org_code,join_code1,join_code2,date,time,trans_amt,trans_currcy_code,lend_flag,trans_type,trans_no,pos_no)values(?,?,?,?,?,?,?,?,?,?,?)";
    return dao.batchUpdate(sql,params);
}

六、这样就完成了批量插入数据,比单条插入快了很多;批量操作的好处就是只连接一次数据库,而单条插入则需每次都要连接数据库,浪费时间,所以大数据插入还需批量插入;

 

注:如有问题可以回复,看到第一时间分析解决,码农不易,感觉对您有用,帮助到您,可否打赏一杯可乐,在此谢过诸位,愿诸君终成大神,前程似锦~~~

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值