Giới thiệu về JDBC

Một phần của tài liệu Bài Giảng Lập Trình Java - Đại Học Thủy Lợi.pdf (Trang 260 - 264)

JDBC, là viết tắt của JavaDatabase Connectivity, là một Java API chuẩn để kết nối giữa ngôn ngữ lập trình Java và các loại cơ sở dữ liệu như MySQL, SQL Server, Oracle, PostgreSQL,... (xem hình 7.1). Sử dụng JDBC, bạn có thể thực hiện nhiều tác vụ đa dạng khi làm việc với cơ sở dữ liệu như tạo, xóa cơ sở dữ liệu, tạo và thực thi các lệnh SQL (Structured Query Language); tạo, xóa các bản ghi,...

ứng dụng Java

I

Trình điều khiển JDBC

Cơ sở dữ liệu

(Access, SQL Server, Oracle...)

Hình 7.1. Kiến trúc JDBC.

7.1.1. Tại sao nên sử dụng JDBC?

Trướckhi có JDBC, ODBC API (Open DataBase Connectivity) được sử dụng là API đế kết nốivà thực thi truy vấn với cơ sờ dữ liệu. Nhưng API này có một hạn chế rõ ràng là

nó sử dụng ODBC trình điềukhiển được viết bằng ngôn ngữ c (là ngôn ngữ phụthuộc nền tảng và không an toàn).

Do đó, Java đã định nghĩa riêng API, gọi là JDBCAPI, để thực hiện các thao tác khi làm việc với cơ sở dữ liệu và tất nhiên, các trìnhđiềukhiển JDBC này được viếtbằngngôn ngữ Java để cungcấp các lợi thế rõ rệt của ngôn ngữ này.

7.1.2. Các thành phần của JDBC

JDBC APIcung cấp cáclóp và giao diện sau:

- DriverManager: Lóp này quản lý các trình điều khiển cơ sở dữ liệu (Database Driver). Ánh xạ các yêu cầu kết nối từ ứng dụng Java với Data Driver thích họp bởi sử dụng giao thức kết nối phụ.

- Driver: Giao diện này xử lý cáckết nốivới Database Server. Hiếm khi, bạn tương tác trực tiếp với các đối tượng Driver này. Thay vào đó, bạn sử dụng các đối tượng DriverManager để quản lý các đối tượng kiểu này.

- Connection: Đối tượng Connection biếu diễn ngữ cảnh giao tiếp. Giao diện này chứa nhiều phương thức đa dạng để tạo kết nốivới một Database.

- Statement: Bạn sử dụng các đối tượng được tạo từ giao diện này để đệ trình các lệnh SQL tới Database. Ngoài ra, một số giao diện kế thừa từnó cũng chấp nhận thêm các tham số đế thực thi các thủ tục đã được lưu trữ.

- ResultSet: Các đối tượng này giữ dữ liệu được thu nhận từ một Database sau khi bạn thực thi một truy vấn SQL. Nó đóng vai trò như một Iterator để cho phép bạn thử nghiệm qua dữ liệucủa nó.

- SQLException: Lớp này xử lý bất cứ lồi nào xuất hiện trong khi làm việc với Database.

7.1.3. Phân loại JDBC Drivers

Trình điều khiển JDBC là một thành phần phần mềmcho phép ứng dụng Java tương tác với cơ sờ dữ liệu. Một trong những nhiệm vụ của trình điều khiển JDBC làchuyểnđổi kiểu dữ liệu của Java thành kiểu dữ liệu của JDBC tương ứng trước khi gửi giá trị dữ liệu tới Database. Ví dụ như nó chuyến kiêu int trong Java thành kieu INTEGER trong SQL.

Trong phần này chúng ta cùng tìm hiểu qua về4kiểu trình điều khiển JDBC, đó là:

- JDBC-ODBC bridge driver;

-Native-API driver;

- Network-Protocol driver;

- Thin driver.

Thông dụng nhất và cũng hiệu quả nhất là loại 4. Duới đây là mô tả chi tiết của từng loại.

JDBC driver loại 1 (JDBC-ODBC bridge driver): cầu nối JDBC-ODBC sử dụng trình điều khiển ODBC để kết nốitới cơ sờ dữ liệu, xem hình 7.2. Trình điềukhiểncầu nối JDBC-ODBC chuyển đổi các lời gọi phuơng thức JDBC thành các lời gọi hàm trong ODBC. Trong giai đoạnđầu khi Java mới xuất hiện thỉ kiếu driver này khá hữu ích, bởi vì hầu hếtcơ sờ dữ liệu chỉ hỗ trợ truy cập ODBC. Nhung hiện nay, kiểu driver này chỉ còn đuợc sử dụng trong các thử nghiệm. Neu bạn đã từng sử dụng JDK 1.2, thì bạn sẽ thấy JDBC-ODBC đi kèm với phiên bản này.

Calling Jiwo Application

JDBC API

JDBC Driverfttanager

JDBC - ODBCBridge

(Type 1 Driver)

GOBCdriver

Hình 7.2. Sơ đồ trình điều khiển cầu nối JDBC-ODBC.

JDBC driver loại 2 (Natỉve-API driver): Trình điều khiển Native-API sử dụng các thu viện phía Client của cơsờ dữ liệu, xem hình 7.3. Trình điều khiển này chuyểnđổi các lời gọi phuơng thức JDBC thành các lời gọi Native C/C++ API. Nó không đuợc viết bằng Java. Sử dụng trình điều khiển Native-API đem lại lợi thế là có hiệu suất nhanhhơn kiểu cầu nối JDBC-ODBC. Tuy nhiên, nếu bạn thay đổi Database thì bạn cũng phải thay đổi Native API, bời vì với mồi Database thì có Native-API riêng. Ví dụ cho kiểu driver này là Oracle Call Giao diện (OCI).

Callirq Java Application

I JDBC API I

J>DC Driver Manager

Database lil

Database

Hình 7.3. Sơ đồ trình điều khiển Native-API.

JDBC driver loại 3 (Network-Protocol driver): Network Protocol driver sử dụng một Middleware để chuyển đổi các lời gọi JDBC một cách trục tiếp hoặc gián tiếp thành Database Protocol, xem hình 7.4. Trình điều khiển này hoàn toàn được viết bang Java. Sử dụng kiểu trình điều khiển này, bạn không cần thư việnphía Client, bởi vì ứng dụng Server có thể thực hiện nhiều tác vụ như thốngkê, cân bằng tải, log,... Tuy nhiên, thiết bị Client của bạn cần hồ trọNetwork và việcduy trì cho kiểu trình điều khiển này là khá đắt đỏ.

JDBC driver loại 4 (Thin driver hay Database-Protocol driver): Thin driver chuyển đổi trực tiếp các lời gọi JDBC thành Database Protocol, xem hình 7.5. Kiểu trình điều khiến này đuợc viết hoàn toàn bang Java. Nó thực sự linh động, bạn không cần cài đặt phần mềm đặc biệt trên Client hoặc Server. Ví dụ cho kiểu trình điều khiển này là Connector/J driver của MySQL. Thin Drivercó hiệu suất cao hơn tất cả các kiểu trình điều khiến khác. Tuy nhiên, có một hạn chế là kiếu trình điều khiến này phụ thuộc vào Database.

filing .MflM Application JDBC API

JDBC Driver Manager

Database

Hình 7.5. Sơ đồ trình điều khiển Native-Protocol.

Neu bạn đang truy cập một kiểu cơ sờ dữ liệu, chắng hạnnhư Oracle, Sybase, hoặc IBM thì bạn nên dùngThin driver.

Nếu ứng dụng Java của bạn đang truy cập nhiều kiểu cơ sở dữ liệu cùng một thời điểm, thì bạn nên sử dụng Network Protocoldriver.

Neu như hai kiểu trên không có sẵn cho cơ sở dữ liệu của bạn thì trong tình huống này, bạn nên sử dụng Native-API driver. Kiểu driver còn lại chỉ nên được sử dụng cho mục đíchpháttriển và thí nghiệm.

Một phần của tài liệu Bài Giảng Lập Trình Java - Đại Học Thủy Lợi.pdf (Trang 260 - 264)

Tải bản đầy đủ (PDF)

(408 trang)