1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo án - Bài giảng: LẬP TRÌNH JAVA NÂNG CAO - TRUY CẬP CƠ SỞ DỮ LIỆU VỚI JDBC

34 1,4K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 323 KB

Nội dung

LẬP TRÌNH JAVA NC Chương 06: Truy cậpsở dữ liệu với JDBC Lê Tân Bộ môn: Lập trình máy tính Nội dung của chương 06  Khái niệm JDBC  Các bước truy cập sở dữ liệu với JDBC – Nạp database drivers – Tạo kết nối sử dụng đối tượng Connection – Tạo đối tượng Statement để thực thi các lệnh sql.  Lớp DriverManager và Connection  Lớp Statement và PreparedStatement  Lớp ResultSet và ResultSetMetaData  Transaction  Cập nhật ResultSet Tổng quan  JDBC cung cấp tập các lớp và interface cho phép chương trình Java thể “nói chuyện” được với hệ CSDL  Tập các lớp của JDBC thể làm việc được với mọi hệ csdl. Kết nối CSDL  3 bước chính để kết nối CSDL. – Nạp database drivers – Tạo kết nối sử dụng đối tượng Connection – Tạo đối tượng Statement để thực thi các lệnh sql. Ví dụ  Chuẩn bị CSDL: Cài đặt một hệ quản trị CSDL trình điều khiển ODBC cài đặt sẵn như ORACLE, SQL Server, MS Access . . .  Thiết kế sở dữ liệu: Tạo CSDL, tạo bảng, tạo chỉ mục . . . cho ứng dụng trên nền hệ quản trị CSDL chuẩn trên (ví dụ: MS Access)  Tạo đối tượng ODBC Tạo đối tượng ODBC  Khởi động trình ứng dụng Control Panel  Khởi động Administrative Tools  Chọn Data Source (ODBC)  Chọn System DSN, Add  Chọn Driver của hệ quản trị sở dữ liệu tương ứng (ví dụ: MS Access) Tạo đối tượng ODBC (tt)  Trong khung Data Source Name: gõ tên đối tượng ODBC của CSDL (ví dụ: ATM)  Chọn Select rồi chọn CSDL đã tạo Nạp trình điều khiển và tạo kết nối try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:ATM"; Connection con=DriverManager.getConnection(url); Statement stmt = con.createStatement(); : : }catch(Exception e){ }  Với Oracle, thay vì sử dụng Class.forName(), ta sử dụng: DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Database URL  Database URL là một chuỗi được dùng để kết nối csdl.  cú pháp : jdbc:subprotocol name:other_stuff  The subprotocol name được dùng tuỳ vào loại driver sử dụng để kết nối csdl.  ví dụ : subprotocol name là odbc nếu driver là cầu nối jdbcodbc  Other_stuff cũng phụ thuộc vào loại driver nào được sử dụng. ví dụ nếu driver là cầu nối jdbcodbc thì thành phần này là tên của đối tượng ODBC  thể tên truy cập và mật khẩu  Với Oracle, url = “jdbc:oracle:oci8:@MyDB” Database Driver  Bảo đảm ứng dụng java tương tác với mọi csdl dưới một cách thức chuẩn và duy nhất.  Bảo đảm những yêu cầu từ chương trình sẽ được biểu diễn trong csdl dưới một ngôn ngữ mà csdl hiểu được  Nhận các yêu cầu từ client, chuyển nó nó vào định dạng mà csdl thể hiểu được và thể hiện trong csdl.  Nhận các phản hồi, chuyển nó ngược lại định dạng dữ liệu java và thể hiện trong ứng dụng. [...]... liệu từ việc thực hiện câu lệnh truy vấn thể lấy dữ liệu từng hàng dữ liệu một trong ResultSet Sử dụng phương thức next() để di chuyển đến hàng dữ liệu tiếp theo trong ResultSet Hàm next() trả lại true chỉ rằng hàng chứa dữ liệu, trả lại false hàng cuối không chứa dữ liệu Thực hiện while (rs.next()){ // examine a row from the results } Sử dụng ResultSet Để lấy dữ liệu ở các cột trên mỗi hàng của... JDBC Driver – – – – Loại 1: JDBC/ ODBC Loại 2: Native-API Loại 3: Open Protocol-Net Loại 4: Proprietary-Protocol-Net Loại 2,3,4 nói chung được viết bởi nhà cung cấp csdl, hiệu quả hơn loại 1 nhưng thực hiện phức tạp hơn Loại 1: JDBC/ ODBC jdk hỗ trợ cầu nối jdbc- odbc (jdbc- odbc bridge) Mềm dẻo nhưng không hiệu quả Aplication Aplication JDBC Driver JDBC Driver Client Disk Disk ODBC Driver ODBC Driver... csdl – Tất cả bằng mã java Aplication Aplication Client JDBC Driver Client JDBC Driver Client Disk Disk Network Interface Network Interface Server JDBC Driver Server JDBC Driver Server Databas e Native Database Native Database Library Library Loại 4: Proprietary-Protocol Net 100% java khả năng giao tiếp trực tiếp với hệ CSDL không cần chuyển đổi Aplication Aplication JDBC Driver JDBC Driver Client... ('ABC','101',6.99,0,0)"); stmt.close(); conn.close(); } catch (java. sql.SQLException e) { System.err.print(“SQLException:"); System.err.println(e.getMessage()); }}} Ví dụ: Chương trình cập nhật dữ liệu Tạo một bảng dữ liệu bằng MS Access, chứa mã sinh viên, họ tên, điểm thi các môn Toán, Lý, Hoá Sau đó viết chương trình thêm, xoá bản ghi, sửa số liệu, tìm kiếm bản ghi theo mã sinh viên ... sun .jdbc. odbc.JdbcOdbcDriver()); hoặc Class.forName(String); – This returns the object associated with the class with the given string name – Class.forName(“sun .jdbc. odbc.JdbcOdbcDriver”); Equivalent to: new sun .jdbc. odbc.JdbcOdbcDriver(); If you have a driver from another vendor, then find out the class name of that driver and load it instead JDBC Driver 4 loại JDBC Driver – – – – Loại 1: JDBC/ ODBC... Server Loại 2: Native-API Tốt hơn loại 1, loại này cho phép JDBC giao tiếp trực tiếp với các driver hay các hàm API của CSDL Aplication Aplication JDBC Driver JDBC Driver Client Disk Disk Native Database Library Native Database Library Network Interface Network Interface Databas e Server Loại 3: Open Protocol-Net Drivers – thể chuyển các yêu cầu đến các csdl nằm ở xa – thể giao tiếp với nhiều loại... record: rs.absolute(3); //Nhảy đến record cần xóa (chỉ dùng absolute) rs.deleteRow(); //Xác nhận xóa record Chương trình mẫu import java. sql.*; class JDBCDemo1 { public static void main(String[ ] args) { try{ Class.forName("sun .jdbc. odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection( "jdbc: odbc:Accserver"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(args[0]); ResultSetMetaData... rs.close(); stmt.close(); } catch(Exception e){ System.out.println("Error " + e); }}} Chương trình mẫu 2 import java. sql.*; public class CreateTable { public static void main(String[] args) { String url = "jdbc: odbc:vd1";Connection conn;Statement stmt; try { Class.forName ("sun .jdbc. odbc.JdbcOdbcDriver"); } catch (java. lang.ClassNotFoundException e) {} try { conn = DriverManager.getConnection(url); stmt... lệnh sql dạng cập nhật – Trả lại số nguyên biểu thị số hàng được cập nhật – UPDATE, INSERT, or DELETE Phương thức execute() – Được áp dụng cho trường hợp không rõ loại sql nào được thực hiện, trả về kiểu boolean, true nếu đó là executeQuery() -> getResultSet() để lấy kết quả – Được áp dụng cho trường hợp câu lệnh sql tạo ra tự động bởi chương trình ResultSet Chứa một hoặc nhiều hàng dữ liệu từ việc... a row from the results } Sử dụng ResultSet Để lấy dữ liệu ở các cột trên mỗi hàng của ResultSet, ta dùng các phương thức – getXXX(int | String) //XXX là kiểu của dữ liệu cần lấy Đối số là chỉ số cột tính từ 1 Áp dụng cho các cột kiểu dữ liệu là int, float, Date – Ví dụ : String isbn = rs.getString(1); // Column thứ 1 float price = rs.getDouble(“Price”); // Column tên “Price” Các phương thức getXXX() . LẬP TRÌNH JAVA NC Chương 06: Truy cập cơ sở dữ liệu với JDBC Lê Tân Bộ môn: Lập trình máy tính Nội dung của chương 06  Khái niệm JDBC  Các bước truy cập cơ sở dữ liệu với JDBC – Nạp database. sun .jdbc. odbc.JdbcOdbcDriver()); hoặc  Class.forName(String); – This returns the object associated with the class with the given string name. – Class.forName(“sun .jdbc. odbc.JdbcOdbcDriver”);  Equivalent to: new sun .jdbc. odbc.JdbcOdbcDriver(); If you have. csdl.  ví dụ : subprotocol name là odbc nếu driver là cầu nối jdbcodbc  Other_stuff cũng phụ thuộc vào loại driver nào được sử dụng. ví dụ nếu driver là cầu nối jdbcodbc thì thành phần này

Ngày đăng: 16/04/2014, 14:26

TỪ KHÓA LIÊN QUAN