一、初始化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);
}
六、这样就完成了批量插入数据,比单条插入快了很多;批量操作的好处就是只连接一次数据库,而单条插入则需每次都要连接数据库,浪费时间,所以大数据插入还需批量插入;
注:如有问题可以回复,看到第一时间分析解决,码农不易,感觉对您有用,帮助到您,可否打赏一杯可乐,在此谢过诸位,愿诸君终成大神,前程似锦~~~