Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
547,72 KB
Nội dung
L L Ậ Ậ P TRÌNH JAVA P TRÌNH JAVA Chương 7 TRUY CẬP CƠ SỞ DỮ LIỆU VỚI JDBC GV: Võ Hoàng Phương Dung Giới thiệu về JDBC Cấu trúc JDBC Các bước sử dụng JDBC 2/25 N N ộ ộ i dung i dung Viết tắt của Java Database Connectivity Là Java API chuẩn cho việc kết nối Java application đến Database Các chức năng • Thiết lập kết nối đến Database • Tạo các câu lệnh truy vấn SQL • Thực thi các câu lệnh truy vấn • Xem và sửa đổi các kết quả truy vấn 3/25 Gi Gi ớ ớ i thi i thi ệ ệ u v u v ề ề JDBC JDBC JDBC hỗ trợ 2 loại truy cập dữ liệu 4/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC 2-tier 3-tier Cấu trúc JDBC gồm 2 phần • JDBC API • JDBC Driver 5/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC API • Phần lớn các API nằm trong 2 gói java.sql javax.sql • Được chứa trong Java SE và Java EE platform 6/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC API cung cấp các interface và class để thao tác dữ liệu • DriverManager: quản lý các database driver • Driver: xử lý giao tiếp với database server • Connection: kết nối database • Statement: tạo và thực thi các câu lệnh SQL • ResultSet: lưu trữ và thao tác trên kết quả trả về • SQLException: xử lý các ngoại lệ trong quá trình thao tác với database 7/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC Driver • Tất cả các Database server đều có JDBC driver tương ứng • Có 4 loại JDBC Driver Loại 1: JDBC/ODBC Loại 2: Native-API Loại 3: Open Protocol-Net Loại 4: Proprietary-Protocol-Net 8/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC driver loại 1: JDBC-ODBC 9/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC driver loại 2: Native API 10/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC [...]...Cấu trúc của JDBC JDBC driver loại 3: Net pure Java 11/25 Cấu trúc của JDBC JDBC driver loại 4: 100% pure Java 12/25 Các bước sử dụng JDBC Bước 1: Thiết lập kết nối Database Bước 2: Tạo câu lệnh truy vấn Bước 3: Thực thi câu truy vấn Bước 4: Xử lý kết quả trả về Bước 5: Đóng kết nối 13/25 Bước 1: Thiết lập kết nối Database Nạp các java package: sử dụng câu lệnh import import java. sql.*... Statement stmt = conn.createStatement( ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); Các loại phương thức của ResultSet • Các phương thức di chuyển con trỏ • Các phương thức lấy dữ liệu trong ResultSet • Các phương thức cập nhật dữ liệu 27/ 25 Bước 4: Xử lý kết quả trả về Các phương thức di chuyển con trỏ public void beforeFirst() throws SQLException public void afterLast() throws SQLException... ResultSet, bắt đầu từ 1 29/25 Bước 4: Xử lý kết quả trả về Các phương thức cập nhật dữ liệu • Cập nhật dữ liệu trong ResultSet public void updateXXX(int columnIndex, XXX s) throws SQLException public void updateXXX(String columnName, XXX s) throws SQLException • Cập nhật dữ liệu từ ResultSet đến Database public void updateRow() Cập nhật các thay đổi của hàng hiện tại trong ResultSet đến Database... Sybase com.sybase .jdbc. SybDriver jdbc: sybase:Tds:hostname: portNumber/databaseName SQLSER VER com.microsoft.sqlserver .jdbc. SQL jdbc: sqlserver:// ServerDriver hostname:portNumber;databaseName 16/25 Bước 1: Thiết lập kết nối Database Ví dụ • SQL SERVER: jdbc: sqlserver://myserver:1433;databasename=Lib rary”; • Oracle thin driver jdbc: oracle:thin:@machinename:1521:dbname” 17/ 25 Bước 1: Thiết lập kết nối... kết quả trả về ResultSet cung cấp các phương thức để xử lý các kết quả trả về từ câu lệnh SQL ResultSet chứa dữ liệu theo dạng Table Truy cập các hàng dữ liệu bằng cách di chuyển con trỏ của ResultSet Ban đầu, con trỏ chỉ hàng đầu tiên 23/25 Bước 4: Xử lý kết quả trả về Các loại ResultSet (ResultSet Types): xét về loại con trỏ và sự phản ánh thay đổi dữ liệu • ResultSet.TYPE_FORWARD_ONLY (mặc... System.out.println("Error"); } 15/25 Bước 1: Thiết lập kết nối Database Xác định Database URL • Được sử dụng để tạo kết nối đến Database • Có thể chứa server, port, protocol… RDBMS MySQL JDBC driver name com.mysql .jdbc. Driver URL format jdbc: mysql://hostname/ databaseName ORACLE oracle .jdbc. driver.OracleDriver jdbc: oracle:thin:@hostname:port Number:databaseName DB2 COM.ibm.db2 .jdbc. net.DB2Driver jdbc: db2:hostname:portNumber/database... refreshRow() Lấy dữ liệu trong Database vào ResultSet public void cancelRowUpdates() Hủy bỏ các thay đổi dữ liệu vừa được thực hiện public void insertRow() Chèn dữ liệu trong hàng hiện tại của ResultSet vào Database 30/25 Bước 5: Đóng kết nối Sử dụng phương thức close() Ví dụ rs.close(); stmt.close(); conn.close(); 31/25 Transaction Transaction: là một khối các thao tác cần được thực hiện tương ứng với nhau... SQLException di chyển đến 1 hàng mới để chèn dữ liệu Vị trí hiện tại sẽ được lưu lại di chuyển về lại vị trí cũ nếu con trỏ đang chỉ đến vị trí hàng vừa được chen28/25 Bước 4: Xử lý kết quả trả về Các phương thức lấy dữ liệu trong ResultSet • getXXX(String columnName) throws SQLException • getXXX(int columnIndex) throws SQLException XXX: là kiểu tương ứng của dữ liệu columnName: tên của cột trong ResultSet... thực thi câu sql chứa biến Các biến được chỉ định bởi dấu ? Truy n biến vào câu lệnh bằng phương thức setXXX(index,value) với XXX là kiểu dữ liệu của biến Ví dụ: String SQL = "Update Employees SET age = ? WHERE id = ?"; PreparedStatement pstmt=conn.prepareStatement(SQL); pstmt.setInt(1,4); Pstmt.setInt(2,5); 20/25 Bước 2: Tạo câu lệnh truy vấn • CallableStatement: để thực thi các stored-procedure... câu lệnh import import java. sql.* ; Đăng ký JDBC Driver: có 2 cách •Sử dụng method: Class.forName() try { Class.forName("oracle .jdbc. driver.OracleDriver"); }catch(ClassNotFoundException ex) { System.out.println("Error"); } 14/25 Bước 1: Thiết lập kết nối Database • Sử dụng DriverManager.registerDriver() try { Driver myDriver = new oracle .jdbc. driver.OracleDriver(); DriverManager.registerDriver( . L L Ậ Ậ P TRÌNH JAVA P TRÌNH JAVA Chương 7 TRUY CẬP CƠ SỞ DỮ LIỆU VỚI JDBC GV: Võ Hoàng Phương Dung Giới thiệu về JDBC Cấu trúc JDBC Các bước sử dụng JDBC 2/25 N N ộ ộ i dung i dung Viết. lệnh truy vấn • Xem và sửa đổi các kết quả truy vấn 3/25 Gi Gi ớ ớ i thi i thi ệ ệ u v u v ề ề JDBC JDBC JDBC hỗ trợ 2 loại truy cập dữ liệu 4/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC 2-tier. c ủ ủ a JDBC a JDBC JDBC driver loại 1: JDBC- ODBC 9/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC driver loại 2: Native API 10/25 C C ấ ấ u tr u tr ú ú c c c c ủ ủ a JDBC a JDBC JDBC