Bài giảng Lập trình Java - Chương 6: Lập trình JDBC
JDBC: Java Database Connectivity
JDBC API: tập các class, interface, exceptions. JDBC API cung
cấp chuẩn kết nối độc lập CSDL giữa ngôn ngữ lập trình java và
nhiều CSDL.
Các RDBMS hay các nhà sản xuất phần mềm thứ 3 phát triển
các drivers cho java đều phải tuân thủ đặc tả JDBC của SUN.
Các java developers dùng các JDBC drivers để phát triển các
ứng dụng có truy cập, thao tác CSDL.
JDBC giúp các Java Developers tạo nên các ứng dụng truy
xuất cơ sở dữ liệu mà không cần phải học và sử dụng các
APIs do các công ty sản xuất phần mềm khác nhau bên thứ
ba cung cấp. JDBC đảm bảo rằng bạn sẽ có thể phát triển
nên các ứng dụng truy cập cơ sở dữ liệu có khả năng truy
cập đến các RDBMS khác nhau bằng cách sử dụng các JDBC
driver khác nhau.
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java - Chương 6: Lập trình 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 - Chương 6: Lập trình JDBC
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM LẬP TRÌNH JDBC (JAVA DATABASE CONNECTIVITY) NỘI DUNG Khái niệm cơ bản Tại sao cần JDBC Kiến trúc JDBC & JDBC APIs Các bước làm việc với Database dùng JDBC Một số lớp và phương thức cơ bản trong JDBC API Các loại JDBC Drivers Ví dụ minh họa Tham khảo Prentice Hall - Core Java 2 Volume II Advanced Features.pdf (chapter 4) O'Reilly - Java Database Programming with JDBC.pdf Các khái niệm cơ bản CSDL JDBC JDBC CSDL JDBC JDBC: Java Database Connectivity JDBC API: tập các class, interface, exceptions. JDBC API cung cấp chuẩn kết nối độc lập CSDL giữa ngôn ngữ lập trình java và nhiều CSDL. Các RDBMS hay các nhà sản xuất phần mềm thứ 3 phát triển các drivers cho java đều phải tuân thủ đặc tả JDBC của SUN. Các java developers dùng các JDBC drivers để phát triển các ứng dụng có truy cập, thao tác CSDL. Các khái niệm cơ bản Tại sao cần JDBC? JDBC giúp các Java Developers tạo nên các ứng dụng truy xuất cơ sở dữ liệu mà không cần phải học và sử dụng các APIs do các công ty sản xuất phần mềm khác nhau bên thứ ba cung cấp. JDBC đảm bảo rằng bạn sẽ có thể phát triển nên các ứng dụng truy cập cơ sở dữ liệu có khả năng truy cập đến các RDBMS khác nhau bằng cách sử dụng các JDBC driver khác nhau. Kiến trúc JDBC JDBC API Các bước làm việc với CSDL Bước 1: nạp JDBC driver Bước 2: tạo kết nối với CSDL dùng driver đã nạp ở bước 1 Bước 3: thao tác với CSDL Nạp drivers: dùng phương thức Class.forName(String) để load JDBC driver class vào trong ứng dụng. Class.forName( "com.somejdbcvendor.TheirJdbcDriver”); Hoặc Class.forName( "com.somejdbcvendor.TheirJdbcDriver”).newInstance(); Ví dụ: Class.forName (“com.mysql.jdbc.Driver”).newInstance (); Các bước làm việc với CSDL Tên Driver class của nhà cung cấp Tạo kết nối với CSDL: dùng phương thức getConnection() của lớp DriverManager để tạo kết nối JDBC xuống CSDL DriverManager.getConnection(). Ví dụ: DriverManager.getConnection("jdbc:odbc:ThuchanhJava", “username", “password”); DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/mydatabase”, “username“, “password”); Các bước làm việc với CSDL Thao tác với CSDL: Các bước làm việc với CSDL Các bước làm việc với CSDL Thao tác với CSDL: Ví dụ minh họa – JDBC ODBC Connection myCon; Statement myStatement; ResultSet myResultSet; String sUsername, sPassword; try { new sun.jdbc.odbc.JdbcOdbcDriver(); myCon = DriverManager.getConnection("jdbc:odbc:ThuchanhJ2EE", "", ""); myStatement = myCon.createStatement(); myResultSet = myStatement.executeQuery("Select * from Account"); Ví dụ minh họa - JDBC ODBC while (myResultSet.next()) { sUsername = myResultSet.getString(1); sPassword = myResultSet.getString(2); if (sUsername.equals("admin") && sPassword.equals("admin")) return true; } myResultSet.close(); myStatement.close(); myCon.close(); } catch(Exception e) { System.out.println(e.toString()); } JDBC Driver SQL Server 2000 Connection myCon; Try { // JDBC Driver for SQL Server 2000 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); myCon = DriverManager.getConnection("jdbc:microsoft:sqlserver://hntin:1433; DatabaseName=ThuchanhJ2EE; User=sa; Password=sa"); } catch (Exception e) { } JDBC Driver SQL Server 2000 Lưu ý: Cần cài đặt SQL Server Service Pack 4 trước khi dùng JDBC Driver kết nối trực tiếp đến SQL Server Kiểm tra xem cổng 1433 của SQL Server đã mở chưa bằng cách vào cửa sổ dòng lệnh gõ telnet 1433 DriverManager - Nạp các JDBC driver vào trong bộ nhớ. Có thể sử dụng nó để mở các kết nối tới một nguồn dữ liệu. Connection - Biểu thị một kết nối đến một nguồn dữ liệu. Được dùng để tạo ra các đối tượng Statement, PreparedStatement và CallableStatement. Statement - Biểu diễn một lệnh SQL tĩnh. Có thể sử dụng nó để thu về đối tượng ResultSet. PreparedStatement - Một giải pháp thay thế hoạt động tốt hơn đối tượng Statement, thực thi một câu lệnh SQL đã được biên dịch trước. Một số lớp và phương thức cơ bản CallableStatement – biểu diễn một thủ tục được lưu trữ. Có thể được sử dụng để thực thi các thủ tục được lưu trữ trong một RDBMS có hỗ trợ chúng. ResultSet - biểu diễn một tập kết quả trong cơ sở dữ liệu tạo ra bởi việc sử dụng một câu lệnh SQL là SELECT. SQLException - một lớp xử lý lỗi ngoại lệ chứa các lỗi truy cập cơ sở dữ liệu. DataSource - Trừu tượng hóa một nguồn dữ liệu. Đối tượng này có thể sử dụng thế cho Một số lớp và phương thức cơ bản Một số lớp và phương thức cơ bản Java.Sql.Statement Interface Các phương thức cơ bản: ResultSet executeQuery(String sql) throws SQLException int executeUpdate(String sql) throws SQLException Java.Sql.ResultSet Interface Lưu kết quả trả về của thao tác truy vấn CSDL. Các phương thức cơ bản boolean first() throws SQLException boolean last() throws SQLException boolean next() throws SQLException boolean previous() throws SQLException boolean absolute(int row) throws SQLException type getType(int |String) Một số lớp và phương thức cơ bản Các loại JDBC Dirvers JDBC-ODBC Bridge plus ODBC Driver A native API partly Java technology-enabled driver Pure Java Driver for Database Middleware Direct-to-Database Pure Java Driver Các loại JDBC Dirvers Type 1: JDBC-ODBC Bridge Database ODBC Driver Java Applications JDBC Driver Type 1 JDBC-ODBC Library Các loại JDBC Dirvers JDBC-ODBC ủy nhiệm công việc truy cập dữ liệu cho ODBC API. Chúng là trình điều khiển chậm nhất trong số còn lại. Client -> JDBC Driver -> ODBC Driver -> Database Ưu điểm Dễ dàng kết nối Nhược điểm Chậm, do thông qua cầu ODBC. ODBC cần install trên máy client Các loại JDBC Dirvers Type 2: Java to Native API Database Database Library Java Applications JDBC Driver Type 2 Các loại JDBC Dirvers Dùng Java Native API (JNI) để gọi đến các thư viện API của database. Ưu điểm Nhanh hơn kiểu 1, không cần ODBC. Nhược điểm Client side lib cần được install trên máy client Không phải tất cả các database đều có Client Side Library Các loại JDBC Dirvers Type 3: Java to Network Protocol Or All- Java Driver Database JDBC Middleware (java) Java Applications JDBC Driver Type 3 Network protocol Các loại JDBC Dirvers Dùng Network protocol để giao tiếp với JDBC middleware trên server. Ưu điểm Không cần DB lib trên máy client. Middle ware có thể cung cấp các dịch vụ như caching connections, query, etc. Nhược điểm Cần coding cho riêng các kiểu DB ở tầng middle ware. Thêm tầng server có thể làm tốn thời gian thao tác DB. Các loại JDBC Dirvers Type 4: Java to Database Protocol Database Java Applications JDBC Driver Type 4 Các loại JDBC Dirvers Drivers thuần java và hiện thực/dùng database protocol để giao tiếp trực tiếp với CSDL. Thường là những JDBC drivers nhanh nhất. Thường dùng socket kết nối trực tiếp với mỗi DBMS khác nhau Client -> JDBC Driver -> Native-protocol JDBC Driver -> database server. Ưu điểm Performance tốt nhất so với các kiểu khác Nhược điểm Phụ thuộc vào database. Các DBMS khác nhau dùng các network protocols khác nhau.
File đính kèm:
- bai_giang_lap_trinh_java_chuong_6_lap_trinh_jdbc.pdf