1. 程式人生 > >小議SQLServer批量更新的優化

小議SQLServer批量更新的優化

1 import java.sql.*;
2 3 publicclass BatchUpdates
4 {
5 publicstaticvoid main(String[] args)
6   {
7     Connection          conn =null;
8     Statement           stmt =null;
9 PreparedStatement pstmt =null;
10     ResultSet           rset =null;
11 int                 i =0;
12 13 try14     {
15       DriverManager.registerDriver(
new oracle.jdbc.OracleDriver());
16 17       String url ="jdbc:oracle:oci8:@";
18 try {
19 //檢查是否配置JDBC環境變數20         String url1 = System.getProperty("JDBC_URL");
21 if (url1 !=null)
22           url = url1;
23       } catch (Exception e) {
24 //如果是在整合開發環境匯入了JDBC的話可以註釋這句25       }
26 27 // 連線到資料庫用 scott 28       conn
= DriverManager.getConnection (url, "scott", "tiger");
29 30       stmt = conn.createStatement();
31 try { stmt.execute(
32 "create table mytest_table (col1 number, col2 varchar2(20))");
33       } catch (Exception e1) {}
34 35 //36 // 批量插入新值.
37 //
38       pstmt = conn.prepareStatement("insert into mytest_table values (?, ?)
");
39 40       pstmt.setInt(1, 1);
41       pstmt.setString(2, "row 1");
42       pstmt.addBatch();
43 44       pstmt.setInt(1, 2);
45       pstmt.setString(2, "row 2");
46       pstmt.addBatch();
47 48       pstmt.executeBatch();
49 50 //51 // 查詢 輸出結構集
52 //
53       rset = stmt.executeQuery("select * from mytest_table");
54 while (rset.next())
55       {
56         System.out.println(rset.getInt(1) +", "+ rset.getString(2));
57       }
58     }
59 catch (Exception e)
60     {
61       e.printStackTrace();
62     }
63 finally64     {
65 if (stmt !=null)
66       {
67 try { stmt.execute("drop table mytest_table"); } catch (Exception e) {}
68 try { stmt.close(); } catch (Exception e) {}
69       }
70 if (pstmt !=null)
71       {
72 try { pstmt.close(); } catch (Exception e) {}
73       }
74 if (conn !=null)
75       {
76 try { conn.close(); } catch (Exception e) {}
77       }
78     }
79   }
80 }