Phương thức sau đây,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }0, xuất ra nội dung của bảng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }1 và minh họa việc sử dụng các đối tượng và con trỏ của
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
public static void viewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString["COF_NAME"]; int supplierID = rs.getInt["SUP_ID"]; float price = rs.getFloat["PRICE"]; int sales = rs.getInt["SALES"]; int total = rs.getInt["TOTAL"]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
Đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 là một bảng dữ liệu đại diện cho tập kết quả cơ sở dữ liệu, thường được tạo bằng cách thực hiện một câu lệnh truy vấn cơ sở dữ liệu. Ví dụ, phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }4 tạo một
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }6, khi nó thực hiện truy vấn thông qua đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }7,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }8. Lưu ý rằng một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 có thể được tạo thông qua bất kỳ đối tượng nào triển khai giao diện
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }7, bao gồm
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }1,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }2 và
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }3
Bạn truy cập dữ liệu trong đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 thông qua con trỏ. Lưu ý rằng con trỏ này không phải là con trỏ cơ sở dữ liệu. Con trỏ này là một con trỏ trỏ đến một hàng dữ liệu trong
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2. Ban đầu, con trỏ ở vị trí trước hàng đầu tiên. Phương pháp
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }6 di chuyển con trỏ đến hàng tiếp theo. Phương thức này trả về
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }7 nếu con trỏ ở vị trí sau hàng cuối cùng. Phương thức này liên tục gọi phương thức
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }6 với vòng lặp
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }9 để lặp qua tất cả dữ liệu trong
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
Trang này bao gồm các chủ đề sau
Giao diện
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 cung cấp các phương thức để truy xuất và thao tác kết quả của các truy vấn đã thực hiện và các đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 có thể có các chức năng và đặc điểm khác nhau. Những đặc điểm này là loại, đồng thời và khả năng giữ con trỏ
Các loại tập hợp kết quả
Loại đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 xác định mức độ chức năng của nó trong hai lĩnh vực. các cách mà con trỏ có thể được thao tác và cách các thay đổi đồng thời được thực hiện đối với nguồn dữ liệu cơ bản được phản ánh bởi đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
Độ nhạy của một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 được xác định bởi một trong ba loại
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 khác nhau
public void modifyPrices[float percentage] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; while [uprs.next[]] { float f = uprs.getFloat["PRICE"]; uprs.updateFloat["PRICE", f * percentage]; uprs.updateRow[]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
7. Tập kết quả không thể cuộn được; . Các hàng có trong tập kết quả phụ thuộc vào cách cơ sở dữ liệu cơ bản tạo ra kết quả. Nghĩa là, nó chứa các hàng thỏa mãn truy vấn tại thời điểm truy vấn được thực hiện hoặc khi các hàng được truy xuấtpublic void modifyPrices[float percentage] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; while [uprs.next[]] { float f = uprs.getFloat["PRICE"]; uprs.updateFloat["PRICE", f * percentage]; uprs.updateRow[]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
8. Kết quả có thể được cuộn; . Tập kết quả không nhạy cảm với những thay đổi được thực hiện đối với nguồn dữ liệu cơ bản khi nó đang mở. Nó chứa các hàng thỏa mãn truy vấn tại thời điểm truy vấn được thực hiện hoặc khi các hàng được truy xuấtpublic void modifyPrices[float percentage] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; while [uprs.next[]] { float f = uprs.getFloat["PRICE"]; uprs.updateFloat["PRICE", f * percentage]; uprs.updateRow[]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
9. Kết quả có thể được cuộn; . Tập kết quả phản ánh những thay đổi được thực hiện đối với nguồn dữ liệu cơ bản trong khi tập kết quả vẫn mở
Loại
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 mặc định là
public void modifyPrices[float percentage] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; while [uprs.next[]] { float f = uprs.getFloat["PRICE"]; uprs.updateFloat["PRICE", f * percentage]; uprs.updateRow[]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }7
Ghi chú. Không phải tất cả các cơ sở dữ liệu và trình điều khiển JDBC đều hỗ trợ tất cả các loại
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2. Phương thức
public void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }3 trả về
public void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }4 nếu loại ____0_______2 được chỉ định được hỗ trợ và ___12_______7 nếu ngược lại
Kết quả đồng thời
Đồng thời của một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 xác định mức chức năng cập nhật được hỗ trợ
Có hai cấp độ đồng thời
public void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }
8. Không thể cập nhật đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 bằng giao diệnpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2con.setAutoCommit[false];
1. Đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 có thể được cập nhật bằng giao diệnpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2
Đồng thời
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 mặc định là
public void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }8
Ghi chú. Không phải tất cả các trình điều khiển và cơ sở dữ liệu JDBC đều hỗ trợ đồng thời. Phương thức
con.setAutoCommit[false];6 trả về
public void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }4 nếu trình điều khiển hỗ trợ mức đồng thời đã chỉ định và ngược lại là
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }7
Phương thức
con.setAutoCommit[false];9 thể hiện cách sử dụng một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 có mức tương tranh là
con.setAutoCommit[false];1
Khả năng giữ con trỏ
Gọi phương thức
int[] updateCounts = stmt.executeBatch[];2 có thể đóng các đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 đã được tạo trong giao dịch hiện tại. Tuy nhiên, trong một số trường hợp, đây có thể không phải là hành vi mong muốn. Khả năng giữ của thuộc tính
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 cho phép ứng dụng kiểm soát xem các đối tượng [con trỏ] của
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 có bị đóng khi cam kết được gọi hay không
Các hằng số
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 sau đây có thể được cung cấp cho các phương thức
int[] updateCounts = stmt.executeBatch[];7
int[] updateCounts = stmt.executeBatch[];8,
int[] updateCounts = stmt.executeBatch[];9 và
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];0
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];
1.public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 con trỏ không đóng; . chúng được mở khi phương thứccon.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];
3 được gọi. Con trỏ có thể giữ có thể là lý tưởng nếu ứng dụng của bạn sử dụng hầu hết các đối tượng chỉ đọc ____con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];
5.public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 đối tượng [con trỏ] được đóng khi phương thứccon.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];
3 được gọi. Đóng con trỏ khi phương thức này được gọi có thể mang lại hiệu suất tốt hơn cho một số ứng dụng
Khả năng giữ con trỏ mặc định khác nhau tùy thuộc vào DBMS của bạn
Ghi chú. Không phải tất cả trình điều khiển và cơ sở dữ liệu JDBC đều hỗ trợ con trỏ có thể giữ được và không thể giữ được. Phương thức sau đây,
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];8, đưa ra khả năng giữ con trỏ mặc định của đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 và liệu
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];1 và
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];5 có được hỗ trợ hay không
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
Giao diện
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 khai báo các phương thức getter [ví dụ:
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }3 và
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }4] để truy xuất các giá trị cột từ hàng hiện tại. Bạn có thể truy xuất các giá trị bằng cách sử dụng số chỉ mục của cột hoặc bí danh hoặc tên của cột. Chỉ mục cột thường hiệu quả hơn. Các cột được đánh số từ 1. Để có tính di động tối đa, các cột tập hợp kết quả trong mỗi hàng phải được đọc theo thứ tự từ trái sang phải và mỗi cột chỉ được đọc một lần
Ví dụ: phương pháp sau,
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }5, truy xuất các giá trị cột theo số
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
Các chuỗi được sử dụng làm đầu vào cho các phương thức getter không phân biệt chữ hoa chữ thường. Khi một phương thức getter được gọi với một chuỗi và nhiều hơn một cột có cùng bí danh hoặc tên với chuỗi, giá trị của cột khớp đầu tiên được trả về. Tùy chọn sử dụng một chuỗi thay vì một số nguyên được thiết kế để sử dụng khi tên và bí danh cột được sử dụng trong truy vấn SQL đã tạo ra tập kết quả. Đối với các cột không được đặt tên rõ ràng trong truy vấn [ví dụ:
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }6], cách tốt nhất là sử dụng số cột. Nếu tên cột được sử dụng, nhà phát triển phải đảm bảo rằng chúng tham chiếu duy nhất đến các cột dự định bằng cách sử dụng bí danh cột. Bí danh cột đổi tên cột của tập hợp kết quả một cách hiệu quả. Để chỉ định bí danh cột, hãy sử dụng mệnh đề SQL
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }7 trong câu lệnh
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }8
Phương thức getter của loại thích hợp lấy giá trị trong mỗi cột. Ví dụ, trong phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }4, cột đầu tiên trong mỗi hàng của
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }6 là
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }2, cột này lưu trữ một giá trị kiểu SQL
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }3. Phương thức truy xuất giá trị kiểu SQL
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }3 là
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }5. Cột thứ hai trong mỗi hàng lưu trữ một giá trị kiểu SQL
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }6 và phương thức truy xuất giá trị kiểu đó là
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }7
Lưu ý rằng mặc dù phương pháp
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }5 được khuyến nghị để truy xuất các loại SQL
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }9 và
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }3, nhưng có thể truy xuất bất kỳ loại SQL cơ bản nào với nó. Nhận tất cả các giá trị với
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }5 có thể rất hữu ích, nhưng nó cũng có những hạn chế. Chẳng hạn, nếu nó được sử dụng để truy xuất một loại số, thì
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }5 sẽ chuyển đổi giá trị số thành một đối tượng Java
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }03 và giá trị phải được chuyển đổi trở lại thành loại số trước khi nó có thể được vận hành dưới dạng số. Trong trường hợp giá trị được coi là một chuỗi, không có nhược điểm nào. Hơn nữa, nếu bạn muốn một ứng dụng truy xuất các giá trị của bất kỳ loại SQL tiêu chuẩn nào ngoài các loại SQL3, hãy sử dụng phương thức
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }5
Như đã đề cập trước đó, bạn truy cập dữ liệu trong đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 thông qua một con trỏ trỏ tới một hàng trong đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2. Tuy nhiên, khi một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 được tạo lần đầu tiên, con trỏ được định vị trước hàng đầu tiên. Phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }4 di chuyển con trỏ bằng cách gọi phương thức
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }6. Có các phương pháp khác có sẵn để di chuyển con trỏ
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
10. Di chuyển con trỏ về phía trước một hàng. Trả vềpublic void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }
4 nếu con trỏ hiện được định vị trên một hàng vàpublic static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
7 nếu con trỏ được định vị sau hàng cuối cùngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
13. Di chuyển con trỏ về phía sau một hàng. Trả vềpublic void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }
4 nếu con trỏ hiện được định vị trên một hàng vàpublic static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
7 nếu con trỏ được định vị trước hàng đầu tiênpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
16. Di chuyển con trỏ đến hàng đầu tiên trong đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2. Trả vềpublic void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }
4 nếu con trỏ hiện đang ở vị trí trên hàng đầu tiên vàpublic static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
7 nếu đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 không chứa bất kỳ hàng nàopublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
21. Di chuyển con trỏ đến hàng cuối cùng trong đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2. Trả vềpublic void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }
4 nếu con trỏ hiện đang ở vị trí trên hàng cuối cùng vàpublic static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
7 nếu đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 không chứa bất kỳ hàng nàopublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
26. Định vị con trỏ ở đầu đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2, trước hàng đầu tiên. Nếu đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 không chứa hàng nào thì phương thức này không có tác dụngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
29. Định vị con trỏ ở cuối đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2, sau hàng cuối cùng. Nếu đối tượngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
2 không chứa hàng nào thì phương thức này không có tác dụngpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
32. Di chuyển con trỏ so với vị trí hiện tại của nópublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
33. Định vị con trỏ trên hàng được chỉ định bởi tham sốpublic static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }
34
Lưu ý rằng độ nhạy mặc định của
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 là
public void modifyPrices[float percentage] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; while [uprs.next[]] { float f = uprs.getFloat["PRICE"]; uprs.updateFloat["PRICE", f * percentage]; uprs.updateRow[]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }7, có nghĩa là nó không thể cuộn được; . Phương pháp
con.setAutoCommit[false];9, được mô tả trong phần sau, minh họa cách bạn có thể di chuyển con trỏ của một
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
Bạn không thể cập nhật đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 mặc định và bạn chỉ có thể di chuyển con trỏ về phía trước. Tuy nhiên, bạn có thể tạo
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 đối tượng có thể cuộn [con trỏ có thể di chuyển ngược hoặc di chuyển đến một vị trí tuyệt đối] và được cập nhật
Phương pháp sau đây,
con.setAutoCommit[false];9, nhân cột
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }44 của mỗi hàng với đối số
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }45
public void modifyPrices[float percentage] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; while [uprs.next[]] { float f = uprs.getFloat["PRICE"]; uprs.updateFloat["PRICE", f * percentage]; uprs.updateRow[]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
Trường
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }46 tạo một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 có con trỏ có thể di chuyển cả tiến và lùi so với vị trí hiện tại và vị trí tuyệt đối. Trường
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }48 tạo một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 có thể được cập nhật. Xem
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 Javadoc để biết các trường khác mà bạn có thể chỉ định để sửa đổi hành vi của các đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
Phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }52 cập nhật cột đã chỉ định [trong ví dụ này,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }44 với giá trị
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }54 đã chỉ định trong hàng nơi con trỏ được định vị.
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 chứa các phương thức cập nhật khác nhau cho phép bạn cập nhật các giá trị cột của các loại dữ liệu khác nhau. Tuy nhiên, không có phương pháp cập nhật nào trong số này sửa đổi cơ sở dữ liệu;
Các đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }7,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }1 và
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }2 có một danh sách các lệnh được liên kết với chúng. Danh sách này có thể chứa các câu lệnh để cập nhật, chèn hoặc xóa một hàng; . Tuy nhiên, nó không thể chứa một câu lệnh sẽ tạo ra một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2, chẳng hạn như một câu lệnh
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }8. Nói cách khác, danh sách chỉ có thể chứa các câu lệnh tạo ra số lượng cập nhật
Danh sách, được liên kết với một đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }7 khi tạo, ban đầu trống. Bạn có thể thêm các lệnh SQL vào danh sách này bằng phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }65 và làm trống nó bằng phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }66. Khi bạn hoàn thành việc thêm các câu lệnh vào danh sách, hãy gọi phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67 để gửi tất cả chúng vào cơ sở dữ liệu để được thực thi dưới dạng một đơn vị hoặc lô
Ví dụ: phương pháp sau,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }68, thêm bốn hàng vào bảng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }1 với một bản cập nhật hàng loạt
public void batchUpdate[] throws SQLException { con.setAutoCommit[false]; try [Statement stmt = con.createStatement[]] { stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut', 49, 9.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Amaretto_decaf', 49, 10.99, 0, 0]"]; stmt.addBatch["INSERT INTO COFFEES " + "VALUES['Hazelnut_decaf', 49, 10.99, 0, 0]"]; int[] updateCounts = stmt.executeBatch[]; con.commit[]; } catch [BatchUpdateException b] { JDBCTutorialUtilities.printBatchUpdateException[b]; } catch [SQLException ex] { JDBCTutorialUtilities.printSQLException[ex]; } finally { con.setAutoCommit[true]; } }
Dòng sau vô hiệu hóa chế độ tự động cam kết cho đối tượng lừa đảo
int[] updateCounts = stmt.executeBatch[];7 để giao dịch sẽ không được tự động cam kết hoặc khôi phục khi phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67 được gọi
con.setAutoCommit[false];
Để cho phép xử lý lỗi chính xác, bạn phải luôn tắt chế độ tự động cam kết trước khi bắt đầu cập nhật hàng loạt
Phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }72 thêm một lệnh vào danh sách các lệnh được liên kết với đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }7
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }8. Trong ví dụ này, các lệnh này đều là câu lệnh
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }75, mỗi câu lệnh thêm một hàng bao gồm năm giá trị cột. Các giá trị cho các cột
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }2 và
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }44 lần lượt là tên của loại cà phê và giá của nó. Giá trị thứ hai trong mỗi hàng là 49 vì đó là số nhận dạng của nhà cung cấp, Superior Coffee. Hai giá trị cuối cùng, mục nhập cho các cột
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }78 và
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }79, tất cả đều bắt đầu bằng 0 vì chưa có doanh số bán hàng nào. [
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }78 là số pound cà phê của hàng này được bán trong tuần hiện tại;
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }79 là tổng doanh số bán hàng tích lũy của hàng cà phê này. ]
Dòng sau gửi bốn lệnh SQL đã được thêm vào danh sách các lệnh của nó tới cơ sở dữ liệu để được thực thi theo đợt
int[] updateCounts = stmt.executeBatch[];
Lưu ý rằng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }8 sử dụng phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67 để gửi hàng loạt lần chèn, không phải phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }84, chỉ gửi một lệnh và trả về một số lần cập nhật duy nhất. DBMS thực thi các lệnh theo thứ tự mà chúng được thêm vào danh sách các lệnh, do đó, trước tiên, nó sẽ thêm hàng giá trị cho Amaretto, sau đó thêm hàng cho Hazelnut, sau đó là Amaretto decaf và cuối cùng là Hazelnut decaf. Nếu tất cả bốn lệnh thực thi thành công, DBMS sẽ trả về số lần cập nhật cho từng lệnh theo thứ tự mà nó được thực thi. Số lần cập nhật cho biết có bao nhiêu hàng bị ảnh hưởng bởi mỗi lệnh được lưu trữ trong mảng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }85
Nếu tất cả bốn lệnh trong lô được thực thi thành công, thì
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }85 sẽ chứa bốn giá trị, tất cả đều là 1 vì thao tác chèn ảnh hưởng đến một hàng. Danh sách các lệnh được liên kết với
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }8 bây giờ sẽ trống vì bốn lệnh được thêm trước đó đã được gửi đến cơ sở dữ liệu khi
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }8 gọi phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67. Bạn có thể làm trống danh sách các lệnh này bất cứ lúc nào một cách rõ ràng bằng phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }66
Phương pháp
int[] updateCounts = stmt.executeBatch[];2 làm cho lô cập nhật vào bảng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }1 trở thành vĩnh viễn. Phương pháp này cần được gọi một cách rõ ràng vì chế độ tự động cam kết cho kết nối này đã bị tắt trước đó
Dòng sau kích hoạt chế độ auto-commit cho đối tượng
int[] updateCounts = stmt.executeBatch[];7 hiện tại
Bây giờ, mỗi câu lệnh trong ví dụ sẽ tự động được chuyển giao sau khi nó được thực thi và nó không còn cần phải gọi phương thức
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];3
Thực hiện cập nhật hàng loạt được tham số hóa
Cũng có thể có một bản cập nhật hàng loạt được tham số hóa, như được hiển thị trong đoạn mã sau, trong đó
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }95 là một đối tượng
int[] updateCounts = stmt.executeBatch[];7
con.setAutoCommit[false]; PreparedStatement pstmt = con.prepareStatement[ "INSERT INTO COFFEES VALUES[ " + "?, ?, ?, ?, ?]"]; pstmt.setString[1, "Amaretto"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; pstmt.setString[1, "Hazelnut"]; pstmt.setInt[2, 49]; pstmt.setFloat[3, 9.99]; pstmt.setInt[4, 0]; pstmt.setInt[5, 0]; pstmt.addBatch[]; // .. and so on for each new // type of coffee int[] updateCounts = pstmt.executeBatch[]; con.commit[]; con.setAutoCommit[true];
Xử lý ngoại lệ cập nhật hàng loạt
Bạn sẽ nhận được một
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }97 khi bạn gọi phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67 nếu [1] một trong các câu lệnh SQL mà bạn đã thêm vào lô tạo ra một tập kết quả [thường là một truy vấn] hoặc [2] một trong các câu lệnh SQL trong lô không thực thi thành công
Bạn không nên thêm truy vấn [câu lệnh
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }8] vào một nhóm lệnh SQL vì phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67, trả về một mảng số lần cập nhật, dự kiến số lần cập nhật từ mỗi câu lệnh SQL thực thi thành công. Điều này có nghĩa là chỉ những lệnh trả về số lần cập nhật [chẳng hạn như
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }75,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }02,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }03] hoặc trả về 0 [chẳng hạn như
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }60, ________0__61,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }06] mới có thể được thực thi thành công theo lô với phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67
Một
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }97 chứa một mảng các số lần cập nhật tương tự như mảng được trả về bởi phương thức
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }67. Trong cả hai trường hợp, số lượng cập nhật theo thứ tự giống như các lệnh đã tạo ra chúng. Điều này cho bạn biết có bao nhiêu lệnh trong lô được thực thi thành công và chúng là những lệnh nào. Ví dụ: nếu năm lệnh được thực hiện thành công, mảng sẽ chứa năm số. cái đầu tiên là số lần cập nhật cho lệnh đầu tiên, cái thứ hai là số lần cập nhật cho lệnh thứ hai, v.v.
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }97 có nguồn gốc từ
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }11. Điều này có nghĩa là bạn có thể sử dụng tất cả các phương thức có sẵn cho một đối tượng
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }11 với nó. Phương pháp sau đây,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }13, in ra tất cả thông tin
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }11 cộng với số lần cập nhật có trong đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }97. Bởi vì
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }16 trả về một mảng của
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }17, mã này sử dụng vòng lặp
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }18 để in từng số lượng cập nhật
public static void printBatchUpdateException[BatchUpdateException b] { System.err.println["----BatchUpdateException----"]; System.err.println["SQLState: " + b.getSQLState[]]; System.err.println["Message: " + b.getMessage[]]; System.err.println["Vendor: " + b.getErrorCode[]]; System.err.print["Update counts: "]; int[] updateCounts = b.getUpdateCounts[]; for [int i = 0; i < updateCounts.length; i++] { System.err.print[updateCounts[i] + " "]; } }
Ghi chú. Không phải tất cả trình điều khiển JDBC đều hỗ trợ chèn hàng mới với giao diện
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2. Nếu bạn cố gắng chèn một hàng mới và cơ sở dữ liệu trình điều khiển JDBC của bạn không hỗ trợ tính năng này, một ngoại lệ
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }20 sẽ được đưa ra
Phương thức sau đây,
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }21, chèn một hàng vào đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }1 thông qua đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }
Ví dụ này gọi phương thức
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }24 với hai đối số,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }46 và
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }48. Giá trị đầu tiên cho phép con trỏ của đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 được di chuyển tiến và lùi. Giá trị thứ hai,
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }48, là bắt buộc nếu bạn muốn chèn hàng vào đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2;
Các quy định tương tự cho việc sử dụng chuỗi trong phương thức getter cũng áp dụng cho phương thức cập nhật
Phương pháp
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }30 di chuyển con trỏ đến hàng chèn. Hàng chèn là một hàng đặc biệt được liên kết với tập kết quả có thể cập nhật. Về cơ bản, nó là một bộ đệm trong đó một hàng mới có thể được tạo bằng cách gọi các phương thức cập nhật trước khi chèn hàng vào tập kết quả. Ví dụ: phương thức này gọi phương thức
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }31 để cập nhật cột
public void insertRow[String coffeeName, int supplierID, float price, int sales, int total] throws SQLException { try [Statement stmt = con.createStatement[ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE]] { ResultSet uprs = stmt.executeQuery["SELECT * FROM COFFEES"]; uprs.moveToInsertRow[]; uprs.updateString["COF_NAME", coffeeName]; uprs.updateInt["SUP_ID", supplierID]; uprs.updateFloat["PRICE", price]; uprs.updateInt["SALES", sales]; uprs.updateInt["TOTAL", total]; uprs.insertRow[]; uprs.beforeFirst[]; } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }2 của hàng chèn thành
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }33
Phương thức
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }34 chèn nội dung của hàng chèn vào đối tượng
public static void cursorHoldabilitySupport[Connection conn] throws SQLException { DatabaseMetaData dbMetaData = conn.getMetaData[]; System.out.println["ResultSet.HOLD_CURSORS_OVER_COMMIT = " + ResultSet.HOLD_CURSORS_OVER_COMMIT]; System.out.println["ResultSet.CLOSE_CURSORS_AT_COMMIT = " + ResultSet.CLOSE_CURSORS_AT_COMMIT]; System.out.println["Default cursor holdability: " + dbMetaData.getResultSetHoldability[]]; System.out.println["Supports HOLD_CURSORS_OVER_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.HOLD_CURSORS_OVER_COMMIT]]; System.out.println["Supports CLOSE_CURSORS_AT_COMMIT? " + dbMetaData.supportsResultSetHoldability[ ResultSet.CLOSE_CURSORS_AT_COMMIT]]; }2 và vào cơ sở dữ liệu
Ghi chú. Sau khi chèn một hàng có
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }34, bạn nên di chuyển con trỏ đến một hàng khác với hàng đã chèn. Ví dụ: ví dụ này di chuyển nó đến trước hàng đầu tiên trong tập kết quả bằng phương thức
public static void alternateViewTable[Connection con] throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try [Statement stmt = con.createStatement[]] { ResultSet rs = stmt.executeQuery[query]; while [rs.next[]] { String coffeeName = rs.getString[1]; int supplierID = rs.getInt[2]; float price = rs.getFloat[3]; int sales = rs.getInt[4]; int total = rs.getInt[5]; System.out.println[coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total]; } } catch [SQLException e] { JDBCTutorialUtilities.printSQLException[e]; } }37. Các kết quả không mong muốn có thể xảy ra nếu một phần khác trong ứng dụng của bạn sử dụng cùng một tập hợp kết quả và con trỏ vẫn trỏ đến hàng chèn