JdbcTemplate 執行批量操作
阿新 • • 發佈:2019-02-10
public RemoveBaseEmergencyEventsArrayResponse removeBaseEmergencyEvents(RemoveBaseEmergencyEventsArray rbeArr) {
final List<String> ids = rbeArr.getThysIdList();
int[] idArray = this.getJdbcTemplate().batchUpdate("delete from BASE_EMERGENCY_EVENTS where EVENT_ID = ?", new BatchPreparedStatementSetter(){
@Override
public int getBatchSize() {
return ids.size();
}
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(i, ids.get(i));
}
});
使用JdbcTemplate進行批量操作時需要藉助介面BatchPreparedStatementSetter來完成,介面BatchPreparedStatementSetter有兩個抽象方法,getBatchSize()和setValues()前者是用來得到批量操作資料的總個數,用於提供後者方法迴圈賦值的次數,後者方法用來給PreparedStatement物件操作的預定義sql的引數賦值。