JDBC Driver là gì?
JDBC Driver là một thành phần phần mềm cho 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 JDBC Driver 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 kiểu INTEGER trong SQL. Trong chương này chúng ta cùng tìm hiểu qua về 4 kiểu JDBC Driver, đó là:
- JDBC-ODBC bridge driver
- Native-API driver
- Network Protocol driver
- Network Protocol driver
Giới thiệu JDBC-ODBC bridge driver
JDBC-ODBC bridge sử dụng ODBC driver để kết nối tới cơ sở dữ liệu. JDBC-ODBC bridge driver chuyển đổi các lời gọi phươ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á là hữu ích, bởi vì hầu hết cơ sở dữ liệu chỉ hỗ trợ truy cập ODBC. Nhưng hiện nay, kiểu driver này chỉ còn được sử dụng trong các thí nghiệm.
Nếu 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.
Giới thiệu Native-API driver
Native-API driver sử dụng các thư viện Client-side của cơ sở dữ liệu. Driver này chuyển đổi các lời gọi phương thức JDBC thành các lời gọi Native C/C++ API. Nó không được viết bằng Java.
Sử dụng Native-API driver đem lại lợi thế là có hiệu suất nhanh hơn JDBC-ODBC bridge. 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 Interface (OCI).
Giới thiệu 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. Driver này hoàn toàn được viết bằng Java.
Sử dụng kiểu driver này, bạn không cần thư viện Client-side, bởi vì ứng dụng Server có thể thực hiện nhiều tác vụ như thống kê, 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ệc duy trì cho kiểu driver này là khá đắt đỏ.
Giới thiệu Thin driver
Thin driver chuyển đổi trực tiếp các lời gọi JDBC thành Database Protocol. Kiểu driver này được viết hoàn toàn bằng 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 driver này là Connector/J driver của MySQL.
Thin Driver có hiệu suất cao hơn tất cả các kiểu driver khác. Tuy nhiên, có một hạn chế là kiểu driver này phụ thuộc vào Database.
Sự sử dụng của các kiểu driver
- Nếu bạn đang truy cập một kiểu cơ sở dữ liệu, chẳng hạn như Oracle, Sybase, hoặc IBM thì bạn nên dùng Thin 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 Protocol driver.
- Nếu như 2 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 đích phát triển và thí nghiệm.