1. 程式人生 > >多執行緒往oracle插入資料

多執行緒往oracle插入資料

package util;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class JdbcUtil {


private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String userName = "scott";
private static String pwd = "tiger";
private static String driverName = "oracle.jdbc.OracleDriver";
private static final List ts = new ArrayList();
static{
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public static void main(String[] args){
final long start = System.currentTimeMillis();
final int threadSize = 10;
final int perSize = 6000;
for(int n=0;n<threadSize;n++){
final int t = n;
new Thread(new Runnable(){
public void run() {
Connection connection = null;
PreparedStatement ps = null;
try {
connection = DriverManager.getConnection(url, userName, pwd);
} catch (SQLException e1) {
e1.printStackTrace();
}
for(int i=0;i<perSize;i++){
String sql = "insert into test values(seq_test.nextval,?)";
try {
ps = connection.prepareStatement(sql);
ps.setString(1, i+"_threaddddddd—"+t);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
long end = System.currentTimeMillis();
ts.add(Long.valueOf(end-start));
if(ts.size()==threadSize){
System.err.println(Arrays.toString(ts.toArray()));
}
}
}).start();
}
}


}