日期:2014-05-16  浏览次数:20595 次

java 批量插入数据(Oracle)

批量添加20000条数据用时8秒。

try {
???String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SID
???String user = "oracle";
???String password = "oracle";
???StringBuffer sql = new StringBuffer();
???sql.append("insert into ex_log (EX_LOG_ID,EX_LOG_DATE) values (?,?)");
???Class.forName("oracle.jdbc.driver.OracleDriver");
???Connection con = (Connection) DriverManager.getConnection(url,user,password);
???// 关闭事务自动提交
???con.setAutoCommit(false);


???Long startTime = System.currentTimeMillis();

???PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql.toString());
???for (int i = 0; i < list.size(); i++) {
????ExLog exLog = (ExLog)list.get(i);
????pst.setString(1, exLog.getExLogId());
????pst.setString(2, exLog.getExLogDate());
????// 把一个SQL命令加入命令列表
????pst.addBatch();
???}
???// 执行批量更新
???pst.executeBatch();
???// 语句执行完毕,提交本事务
???con.commit();

???Long endTime = System.currentTimeMillis();
???System.out.println("用时:" + (endTime - startTime));

???pst.close();
???con.close();
??} catch (ClassNotFoundException e) {
???e.printStackTrace();
??} catch (SQLException e) {
???e.printStackTrace();
??}