Các khái niệm mới của JDBC 2.0

Chia sẻ: Minh Thanh | Ngày: | Loại File: PPT | Số trang:9

0
153
lượt xem
41
download

Các khái niệm mới của JDBC 2.0

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Với phiên bản 1.0, ResultSet chỉ có thể duyệt theo 1 chiều là forward. Với phiên bản 2.0, ResultSet có thể duyệt cả chiều forward và backward. Sự thay đổi nằm ở câu lệnh createStatement:

Chủ đề:
Lưu

Nội dung Text: Các khái niệm mới của JDBC 2.0

  1. Các khái niệm mới của JDBC 2.0 Đào Anh Tuấn – datuan@fit.hcmuns.edu.vn
  2. Scrollable ResultSet  Với phiên bản 1.0, ResultSet chỉ có thể duyệt theo 1 chiều là forward  Với phiên bản 2.0, ResultSet có thể duyệt cả chiều forward và backward. Sự thay đổi nằm ở câu lệnh createStatement: Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSIT IVE, ResultSet.CONCUR_READ_ONLY);  ResultSet trả về bởi statement này sẽ có khả năng di chuyển theo 2 hướng: ResultSet srs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");
  3. createStatement  createStatement(int resultSetType, int resultSetConcurrency)  Type: TYPE_FORWARD_ONLY: chỉ duyệt chiều tiến tới TYPE_SCROLL_INSENSITIVE : duyệt 2 chiều, khi duyệt không chú ý đến sự thay đổi dữ liệu TYPE_SCROLL_SENSITIVE : duyệt 2 chiều, có phát hiện thay đổi dữ liệu.  Concurrency: CONCUR_READ_ONLY : ResultSet chỉ đọc, muốn thay đổi dữ liệu phải dùng câu lệnh executeUpdate(); CONCUR_UPDATABLE : ResultSet có khả năng thay đổi dữ liệu
  4. Duyệt ResultSet  next(): duyệt tiến, khi hết dòng sẽ trả về false  previous(): duyệt lùi, khi hết dòng sẽ trả về false  afterLast(),beforeFirst(): nhảy về sau dòng cuối cùng, trước dòng đầu tiên  absolute(n): nhảy đến dòng thứ n,  n là số dương: ví dụ +1, nhảy đến dòng đầu  n là số âm: ví dụ -1, nhảy đến dòng kế cuối  relative(n): nhảy lên (nếu n>0), hoặc nhảy lùi về (nếu n
  5. Update với ResultSet  Jump đến dòng cần update, thực thi các câu lệnh updateXXX(). Ví dụ: Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet uprs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES"); uprs.last(); //Nhảy đến dòng cuối uprs.updateFloat("PRICE", 10.99); uprs.updateRow(); //Thực thi update
  6. Insert  ResultSet có một dòng đặc biệt, gọi là Insert Row  Jump đến insert row, sau đó thực thi các lệnh update uprs.moveToInsertRow(); uprs.updateString("COF_NAME", "Kona"); uprs.updateInt("SUP_ID", 150); uprs.updateFloat("PRICE", 10.99); uprs.updateInt("SALES", 0); uprs.updateInt("TOTAL", 0); uprs.insertRow(); //Thực thi insert
  7. Delete Di chuyển đến dòng cần delete: uprs.absolute(4); uprs.deleteRow();
  8. Batch Update  Thực hiện nhiều câu lệnh Update cùng lúc. con.setAutoCommit(false); 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();
Đồng bộ tài khoản