Spring 批量插入
/** * 批量插入 */ public void insertBudget(List<CostBudget> budgetList) { final List<CostBudget> budgetListTemp = budgetList; if(budgetListTemp != null && budgetListTemp.size() > 0) { String sql= CommonConfig.getString("costbudget.insert.cost_budget",""); this.jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { CostBudget costBudget = budgetListTemp.get(i); ps.setInt(1, costBudget.getTerm()); ps.setInt(2, costBudget.getBudgetType()); ps.setInt(3, costBudget.getDeptId() != null?costBudget.getDeptId():0); ps.setString(4, costBudget.getImportDeptName()); ps.setString(5, costBudget.getKmBh()); ps.setString(6, costBudget.getImportKmMc()); ps.setBigDecimal(7, BigDecimal.valueOf(costBudget.getCurrentMonth())); ps.setBigDecimal(8, BigDecimal.valueOf(costBudget.getCurrentMonthAdjust())); ps.setBigDecimal(9, BigDecimal.valueOf(costBudget.getCurrentMonthAdAfter())); ps.setBigDecimal(10, BigDecimal.valueOf(costBudget.getSumCurrent())); ps.setBigDecimal(11, BigDecimal.valueOf(costBudget.getSumCurrentAdjust())); ps.setBigDecimal(12, BigDecimal.valueOf(costBudget.getSumCurrentAdAfter())); ps.setBigDecimal(13, BigDecimal.valueOf(costBudget.getYearBudget())); ps.setBigDecimal(14, BigDecimal.valueOf(costBudget.getBudgetCompletionRate())); //每2000条进行事物提交 if (i%2000 == 0) { ps.executeBatch(); //执行prepareStatement对象中所有的sql语句 } } @Override public int getBatchSize() { return budgetListTemp.size(); } }); } }
?