Spring JdbcTemplate 批量插入或更新操作

 Spring JdbcTemplate 批量插入或更新操作
用 JdbcTemplate 進行批量插入或更新操作
方法一:
代碼只是測試用的一個小例子。
public int insertContractAch(List list) throws DataAccessException {   
    final List temList = list;   
    String sql = "insert into contract_ach_t " +   
            " values(?,to_date(?,'yyyy-mm-dd'),?,?) ";   
    try{   
        int[] ii = this.getJdbcTemplate().batchUpdate(sql, new MyBatchPreparedStatementSetter(temList));   
        return ii.length;   
    }catch (org.springframework.dao.DataAccessException e) {   
        e.printStackTrace();   
        throw new DataAccessException(e.getMessage());   
    }   
}   
/** 
* 處理批量插入的回調類 
* */   
private class MyBatchPreparedStatementSetter implements BatchPreparedStatementSetter{   
    final List temList;   
    /**通過構造函數把要插入的數據傳遞進來處理*/   
    public MyBatchPreparedStatementSetter(List list){   
        temList = list;   
    }   
    public int getBatchSize() {   
        return temList.size();   
    }   
   
    public void setValues(PreparedStatement ps, int i)   
            throws SQLException {   
        ContractAchVO contractAchVO = (ContractAchVO)temList.get(i);   
        ps.setString(1, contractAchVO.getContractCode());   
        ps.setString(2, contractAchVO.getCreateDate());   
        ps.setString(3, contractAchVO.getEmployeeId());   
        ps.setString(4, contractAchVO.getPercent());   
    }   
} 
方法二:
//插入很多書(批量插入用法) 
public void insertBooks(List<Book> book) 
{ 
  final List<Book> tempBook=book; 
  String sql="insert into book(name,pbYear) values(?,?)"; 
  jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() 
  { 
   public void setValues(PreparedStatement ps,int i)throws SQLException 
   { 
    String name=tempBook.get(i).getName(); 
    int pbYear=tempBook.get(i).getPbYear(); 
    ps.setString(1, name); 
    ps.setInt(2, pbYear); 
   } 
   public int getBatchSize() 
   { 
    return tempBook.size(); 
   } 
  }); 
    
} 

轉載來自:http://blog.csdn.net/wujt8888/article/details/4766039
發佈了35 篇原創文章 · 獲贊 9 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章