1. 程式人生 > >Java批量插入資料

Java批量插入資料

  1. publicvoid insertRecordTableq(List<Object[]> obs){  
  2.         if(null != obs && !obs.isEmpty()){  
  3.             String insertSql = "insert into product_check_company(id_uuid,column_name,oms,product,remark) values ";  
  4.             StringBuffer sql = new StringBuffer();  
  5.             for(
    int i = 0; i < obs.size(); i++){  
  6.                 sql.append("("+obs.get(i)[0]);  
  7.                 sql.append(",");  
  8.                 sql.append(obs.get(i)[1]);  
  9.                 sql.append(",");  
  10.                 sql.append(obs.get(i)[2]);  
  11.                 sql.append(",");  
  12.                 sql.append(obs.get(i)[3
    ]);  
  13.                 sql.append(",");  
  14.                 sql.append(obs.get(i)[4]);  
  15.                 sql.append("),\n");  
  16.             }  
  17.             JdbcTemplate.update(insertSql+sql.toString().substring(0, sql.length() - 2));  
  18.         }  
  19.     }  


SQL格式:insert into product_check_company(id_uuid,column_name,oms,product,remark) values (0,1,2,3,4),
(1,2,3,4,5),
(2,3,4,5,6),
(3,4,5,6,7)

效率比JdbcTemplate.batchUpdate高,一萬條資料1秒內可完成。

此語句在MySQL 5, postgreSQL 9.3執行通過。