小議SQLServer批量更新的優化
阿新 • • 發佈:2019-02-15
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(
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
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 }