批處理快速插入資料
阿新 • • 發佈:2019-01-09
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++) {
if(i%1000==0){ //可以設定3000,5000等執行一次。
pstm.executeBatch();
conn.commit();
CommonUtils.connClose(conn,pstm);
}catch (Exception e) {
e.printStackTrace();
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);
}
}
}
}
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();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 {
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);
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);
}
}
}
}