Ngày nay các thông tin với dung lượng lớn đều được lưu trữ trong các kho dữ liệu lớn. Khả năng truy xuất tới các cơ sở dữ liệu là điều không thể thiếu đối với các ứng dụng. Điều này lại càng đúng với các ứng dụng chạy trên mạng máy tính nói chung và Internet nói riêng. Trong chương này chúng ta sẽ đi vào tìm hiểu giao diện lập trình ứng dụng JDBC của Java và cách thức để kết nối với một cơ sở dữ liệu từ một ứng dụng Java thông qua JDBC.
1. JDBC Java Database Connectivity API
SUN đã phát triển một giao diện lập trình ứng dụng API để truy xuất cơ sở dữ liệu-JDBC. Mục tiêu đặt ra của SUN là:
· JDBC là một giao diện lập trình ứng dụng mức SQL.
· JDBC cần có được những kinh nghiệm làm việc với các API cơ sở dữ liệu hiện có.
· JDBC cần đơn giản
Giao diện lập trình ứng dụng mức SQL nghĩa là JDBC cho phép ta xây dựng các lệnh SQL và nhúng các lệnh SQL bên trong các lời gọi Java API. Nói tóm lại, về cơ bản ta vẫn sử dụng SQL nhưng JDBC cho phép ta dịch một cách trôi chảy giữa thế giới cơ sở dữ liệu và thế giới ứng dụng Java. Kết quả của bạn từ cơ sở dữ liệu, được trả về dưới dạng các đối tượng Java và nếu có vấn đề khi truy xuất nó sẽ đưa ra các ngoại lệ.
JDBC API đã chuẩn hóa:
· Cách thiết lập tới cơ sở dữ liệu
· Cách tiếp cận để khởi tạo các truy vấn
· Cách thức để tạo ra các truy vấn có tham số
· Chuẩn hóa cấu trúc dữ liệu của kết quả truy vấn
o Xác định số cột
o Tra tìm các metadata.
JDBC API chưa chuẩn hóa cú pháp SQL. JDBC không phải là SQL nhúng. Lớp JDBC nằm trong gói java.sql. Nó bao gồm hai phần:
· JDBC API là một giao diện lập trình ứng dụng viết bằng ngôn ngữ Java thuần túy.
· Trình quản lý Driver JDBC truyền tin với các trình điều khiển cụ thể của nhà sản xuất, các trình điều khiển cơ sở dữ liệu của nhà sản xuất truyền tin với cơ sở dữ liệu.
2. Cấu trúc của JDBC
JDBC thực hiện các mục tiêu của nó thông qua một tập hợp các giao tiếp JDBC, mỗi giao tiếp thực được thực hiện bởi từng nhà sản xuất. Tập hợp các lớp thực thi các giao tiếp JDBC cho một mô tơ cơ sở dữ liệu cụ thể được gọi là một trình điều khiển JDBC. Khi xây dựng một ứng dụng cơ sở dữ liệu, ta không phải xem xét đến tất cả các lớp cơ sở. JDBC che dấu các chi tiết của từng cơ sở dữ liệu và như vậy ta chỉ cần quan tâm đến ứng dụng của mình.
Hình 1.1
Các cơ sở dữ liệu và các trình điều khiển
Hình 1.2
2.1. Kiểu 1
Các trình điều khiển này sử dụng một công nghệ cầu nối để truy xuất tới một cơ sở dữ liệu. Cầu nối JDBC-ODBC được bắt đầu đưa vào từ JDK 1.2 là một ví dụ điển hình cho kiểu driver này. Nó cung cấp một gateway tới API ODBC. Cài đặt của API này thực hiện truy xuất tới cơ sở dữ liệu thực tế. Giải pháp cầu nối thường yêu cầu phần mềm phải được cài đặt trên hệ thống client, nghĩa là chúng không phải là các giải pháp tốt cho các ứng dụng mà không cho phép cài đặt phần mềm trên client.
Cầu nối JDBC-ODBC cung cấp cách truy xuất thông qua một hay nhiều trình điều khiển ODBC.
· Ưu điểm:
· Nhược điểm:
o Không phù hợp với các ứng dụng quy mô lớn. Hiệu năng thấp vì có cần nhiều công đoạn cần thực hiện để chuyển từ JDBC sang ODBC.
o Không hỗ trợ tất cả các đặc trưng của Java.
o Người sử dụng bị hạn chế bởi chức năng do trình điều khiển ODBC cung cấp.
2.2. Kiểu 2
Các trình điều khiển kiểu 2 là các trình điều khiển API-trình điều khiển gốc. Điều này nghĩa là mã Java gọi các phương thức C hoặc C++ được cung cấp bởi từng nhà sản xuất hệ quản trị cơ sở dữ liệu để thực hiện truy xuất tới cơ sở dữ liệu. Giải pháp này vẫn yêu cầu phải có phần mềm trên hệ thống client. JDBC chuyển các lời gọi tới JDBC API thành các lời gọi kết nối với giao diện lập trình ứng dụng của máy khác cho một cơ sở dữ liệu cụ thể như IBM, Informix, Oracle, hoặc Sybase.
· Ưu điểm:
Hiệu năng tốt hơn kiểu 1, vì trình điều khiển kiểu 2 chứa các mã lệnh đã được biên dịch được tối ưu hóa cho hệ điều hành của server có sở dữ liệu hoạt động ở chế độ hậu trường,
· Nhược điểm
o Người sử dụng cần đảm bảo rằng trình điều khiển JDBC của nhà sản xuất cơ sở dữ liệu có trên từng máy khách.
o Phải có chương trình đã được biên dịch cho mỗi hệ điều hành mà ứng dụng sẽ chạy.
o Chỉ sử dụng có hiệu quả trong các môi trường có kiểm soát như một mạng intranet
2.3. Kiểu 3
Các trình điều khiển kiểu 3 cung cấp cho client một API mạng chung, API này sau đó chuyển thành thao tác truy xuất cơ sở dữ liệu mức server. Mặt khác, trình điều khiển JDBC trên client sử dụng các socket để gọi một ứng dụng trung gian (middleware) trên server để chuyển các yêu cầu của client thành một API cụ thể đối với từng server. Kết quả là trình điều khiển này đặc biệt linh hoạt, vì nó không cần phải có phần mệm cài đặt trên client và một trình điều khiển có thể cung cấp khả năng truy xuất tới nhiều cơ sở dữ liệu.
Java Middleware thuần tuý
Trình điều khiển Java thuần túy cho các chương trình trung gian cơ sở dữ liệu để dịch các lời gọi JDBC cho giao thức của nhà sản xuất phần mềm trung gian, trình điều khiển này sau đó được chuyển cho một giao thức gắn với cơ sở dữ liệu cụ thể bởi phần mềm server trung gian.
· Ưu điểm:
o Được sử dụng khi một công ty có nhiều cơ sở dữ liệu và muốn sử dụng một trình điều khiển JDVC để kết nối với tất cả các cơ sở dữ liêu.
o Trình điều khiển nằm trên server, vì thế không cần trình điều khiển JDBC trên từng máy client
o Thành phần server được tối ưu hóa cho hệ điều hành đang chạy ở chế độ hậu trường
· Nhược điểm:
o Cần mã lệnh cho cơ sở dữ liệu cụ thể trên server trung gian
2.4. Kiểu 4
Sử dụng các giao thức mạng được tích hợp sẵn vào engine cơ sở dữ liệu, các driver kiểu 4 truyền tin trực tiếp với cơ sở dữ liệu bằng cách sử dụng socket Java. Đây là trình điều khiển Java thuần túy nhất. Kiểu trình điều khiển này thường do nhà sản xuất cơ sở dữ liệu cung cấp.
Trình điều khiển Java thuần túy tới kết nối trực tiếp với cơ sở dữ liệu chuyển các lời gọi JDBC thành các gói tin được truyền đi trên mạng theo một khuôn dạng được sử dụng bởi cơ sở dữ liệu cụ thể. Cho phép một lời gọi trực tiếp từ máy client tới cơ sở dữ liệu.
· Ưu điểm:
o Không cần cài phần mềm đặc biệt nào trên client hoặc server. Có thể được tải về một cách linh hoạt
· Nhược điểm
o Không tối ưu cho hệ điều hành server vì vậy trình điều khiển không thể tận dụng các đặc trưng ưu việt của hệ điều hành
( còn tiếp)
» Tin mới nhất:
» Các tin khác: