1. 程式人生 > >JdbcTemplate 執行批量操作

JdbcTemplate 執行批量操作

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的引數賦值。