Bài giảng Lập trình Java 3 - Bài 5: Giới thiệu JDBC
JDBC là chuẩn kết nối CSDL, cung cấp các interface & class nhằm tạo cơ sở cho các ứng dụng Java tương tác với các hệ quản trị CSDL
Tập hợp các lớp thực thi theo chuẩn JDBC để tương tác với 1 CSDL, cụ thể gọi là JDBC driver
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình Java 3 - Bài 5: Giới thiệu JDBC", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java 3 - Bài 5: Giới thiệu JDBC
SOF203 - Lập trình Java 3 Bài 5: Giới thiệu JDBC Mục tiêu bài học Giới thiệu chung về JDBC Trình điều khiển JDBC • Phân loại • Database URL Các lớp tác vụ cơ bản của JDBC • Statement • ResultSet Quản lý transaction Xử lý đa người dùng Giới thiệu chung về JDBC JDBC là chuẩn kết nối CSDL, cung cấp các interface & class nhằm tạo cơ sở cho các ứng dụng Java tương tác với các hệ quản trị CSDL Tập hợp các lớp thực thi theo chuẩn JDBC để tương tác với 1 CSDL, cụ thể gọi là JDBC driver Phần lớn ý tưởng của JDBC kế thừa từ chuẩn kết nối ODBC của Microsoft Type 1 JDBC/ODBC Được cung cấp miễn phí bởi Sun-jdk Có thể truy xuất bất kỳ DBMS nào được hỗ trợ bởi ODBC driver Tính khả chuyển cao nhưng kém hiệu quả JDBC-ODBC Bridge, plus ODBC driver 5 Ứng dụng Java Type I JDBC- ODBC Bridge Database SQL Command Result Set Ứng dụng Proprietary Protocol ODBC Driver Type 2 Native-API JDBC driver tương tác trực tiếp với database API • 1 phần mã Java • 1 phần mã tự nhiên của DBMS 7 Native-API , partly Java driver Ứng dụng Java Type II JDBC Driver Database SQL Command Result Set Ứng dụng Proprietary Protocol Native Database Library Type 3: Open Protocol-Net Tương tác với nhiều DBMS theo giao thức mở • 100% Java code • Cài đặt driver cả 2 phía client & server 9 JDBC-net, pure Java driver Ứng dụng Java Type III JDBC Driver Database Result Set Ứng dụng Middleware JDBC Type 4: Propriatary-Protocol Net 100% java Truy xuất trực tiếp DBMS theo giao thức độc quyền Hiệu quả nhất 11 Native protocol – pure Java driver Ứng dụng Java Type IV JDBC Driver Database Các câu lệnh SQL, dùng Proprietary protocol Result Set, dùng Proprietary protocol Ứng dụng 7 bước kết nối với JDBC Nạp driver Định nghĩa Connection URL Kết nối CSDL bằng đối tượng Connection Tạo đối tượng Statement Thi hành câu truy vấn Xử lý kết quả Đóng kết nối 13 Sample Database LOP HOCVIEN 14 Step 1 - 2 1. Load the driver try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver"); Class.forName("net.sourceforge.jtds.jdbc.Driver"); } catch { ClassNotFoundException cnfe) { System.out.println("Error loading driver: " cnfe); } 2. Define the Connection URL String myURL = "jdbc:odbc:myBook“ ; String myURLtype_4 = "jdbc:jtds:sqlserver://localhost:1433/pubs"; (mỗi loại driver cho 1 lọai CSDL sẽ có thay đổi) 15 Step 3 – kết nối 3. Establish the Connection String username = “sa"; String password = ""; Connection connection = DriverManager.getConnection(myURL,username, password); • Optionally, look up information about the database DatabaseMetaData dbMetaData = connection.getMetaData(); String productName =dbMetaData.getDatabaseProductName(); System.out.println("Database: " + productName); String productVersion =dbMetaData.getDatabaseProductVersion(); System.out.println("Version: " + productVersion); 16 Step 4 - 5 4. Create a Statement Statement statement = connection.createStatement(); 5. Execute a Query String query =“select * from LOP"; ResultSet resultSet =statement.executeQuery(query); – Để cập nhật, sửa đổi (modify) sử dụng phương thức executeUpdate (cho các lệnh UPDATE, INSERT,DELETE) String query =“insert LOP values(‘L04’, ‘JAVA’)”; int rowEffect = statement.executeUpdate(query); Số dòng bị ảnh hưỡng 17 Step 5 (tt) Để tạo 1 table, xóa 1 table sử dụng phương thức execute String query = “drop table LOP”; statement.execute(query); 18 Step 6 6. Xử lý kết quả trả về : while(resultSet.next()) { System.out.println(resultSet.getString(1) + " " +resultSet.getInt(2)) ; } - Cột đầu tiên đánh số là 1 - Có thể dùng tên cột : resultSet.getString(“TenLop”); - ResultSet cung cấp 1 số phương thức : getString(int) , getInt(int) , getLong(int) , getObject(int) , getDate(int) . 19 Step 7 Sau khi sử dụng phải đóng connection connection.close(); Câu lệnh Statement Ba loại Statement • Statement: thi hành câu lệnh tùy ý tại thời điểm chạy • PreparedStatement: câu lệnh SQL được biên dịch trước • CallableStatement: gọi thủ tục trên DBMS Sử dụng kết nối connection để tạo câu lệnh • Statement s = con.createStatement(); • PreparedStatement ps=con.prepareStatement(String); • CallableStatement cs=con.prepareCall(String); Câu lệnh Statement có thể được sử dụng nhiều lần cho những tác vụ khác nhau, những câu lệnh SQL không liên quan nhau Thi hành Statement Có 3 cách thi hành Statement • executeQuery() • executeUpdate() • execute() executeQuery() • Dùng để thi hành các câu lệnh truy vấn Selectfromwhere • Trả về kết quả truy vấn qua đối tượng ResultSet • ResultSet rs=s.executeQuery(“SELECT * FROM Books”); Thi hành Statement executeUpdate() • Dùng cho câu lệnh cập nhật dữ liệu • Trả về số bản ghi chịu ảnh hưởng bởi câu lệnh UPDATE, INSERT, DELETE • Trả về 0 ,có nghĩ • Không có bản ghi nào bị ảnh hưởng • Thực thi câu lệnh DDL định nghĩa dữ liệu Execute() • Khi không biết rõ câu lệnh là truy vấn hay cập nhật • Dùng cho các trường hợp thực thi SQL động • Trả về true nếu câu lệnh là truy vấn • Gọi getResultSet() để nhận được kết quả truy vấn • Gọi getUpdatedCount() để biết số bản ghi đã cập nhật PreparedStatements Sử dụng PreparedStatement để tăng hiệu quả thi hành câu lệnh SQL Câu lệnh SQL sẽ được biên dịch 1 lần trước khi được gọi thi hành nhiều lần Thay đổi đối số mỗi lần thi hành Sau khi thiết lập giá trị đối số, chúng được giữ nguyên cho đến khi thiết lập giá trị mới hoặc gọi phương thức clearParameters() để xóa giá trị các đối số Callable Statement CallableStatement cung cấp câu lệnh gọi thi hành các thủ tục đã cài đặt sẵn trên DBMS Cú pháp {Call procedure_name(arg1,arg2,)} {?=call procedure_name arg1, arg2,} Dấu ? Thay chỗ cho các đố
File đính kèm:
- bai_giang_lap_trinh_java_3_bai_5_gioi_thieu_jdbc.pdf