1. 程式人生 > >批處理快速插入資料

批處理快速插入資料

try {
String sql = "INSERT INTO USER (id,name) VALUES(?,?)";
Connection conn = null;
PreparedStatement pstm =null;
conn=CommonUtils.getConnection();
pstm = conn.prepareStatement(sql);

for(int i = 0; i < 10000; i++) { 

pstm.setString(1, i);

pstm.setString(2, “小王”);

pstm.addBatch();

if(i%1000==0){ //可以設定3000,5000等執行一次。

pstm.executeBatch(); 

}

}
pstm.executeBatch();   
conn.commit();
CommonUtils.connClose(conn,pstm);
}catch (Exception e) {
e.printStackTrace();

}



package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class CommonUtils {

public static Connection getConnection(){
String url =PropUtils.get("jdbc.url");
String user =PropUtils.get("jdbc.username");
String password =PropUtils.get("jdbc.password");
String driver=PropUtils.get("jdbc.driver");
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);    
}catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return conn;
}

public static void connClose(Connection conn,PreparedStatement pstm){
if(pstm!=null){
try {
pstm.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
}