intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

192
lượt xem
43
download
 
  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();
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2