Giáo trình Lập trình Java - Chương 6: Lập trình JDBC (java database connectivity)

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

pdf30 trang | Chia sẻ: huongnhu95 | Lượt xem: 457 | Lượt tải: 0download
Tóm tắt tài liệu Giáo trình Lập trình Java - Chương 6: Lập trình JDBC (java database connectivity), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ả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.

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_lap_trinh_java_chuong_6_lap_trinh_jdbc_java_datab.pdf