JDBC驅動程序分類
- JDBC驅動程序:各個數據庫廠商根據JDBC的規范制作的 JDBC 實現類的類庫
- JDBC驅動程序總共有四種類型:
- 第一類:JDBC-ODBC橋。
- 第二類:部分本地API部分Java的驅動程序。
- 第三類:JDBC網絡純Java驅動程序。
- 第四類:本地協議的純 Java 驅動程序。
- 第三、四兩類都是純Java的驅動程序,因此,對於Java開發者來說,它們在性能、可移植性、功能等方面都有優勢。
ODBC
- 早期對數據庫的訪問,都是調用數據庫廠商提供的專有的 API。為了在 Windows 平台下提供統一的訪問方式,微軟推出了 ODBC(Open Database Connectivity,開放式數據庫連接),並提供了 ODBC API,使用者在程序中只需要調用 ODBC API,由 ODBC 驅動程序將調用轉換成為對特定的數據庫的調用請求
- 一個基於ODBC的應用程序對數據庫的操作不依賴任何DBMS(database manager system),不直接與DBMS打交道,所有的數據庫操作由對應的DBMS的ODBC驅動程序完成。也就是說,不論是FoxPro、Access , MYSQL還是Oracle數據庫,均可用ODBC API進行訪問。由此可見,ODBC的最大優點是能以統一的方式處理所有的數據庫。
JDBC-ODBC橋
- JDBC-ODBC 橋本身也是一個驅動,利用這個驅動,可以使用 JDBC-API 通過ODBC 去訪問數據庫。這種機制實際上是把標准的 JDBC 調用轉換成相應的 ODBC 調用,並通過 ODBC 訪問數據庫
- 因為需要通過多層調用,所以利用 JDBC-ODBC 橋訪問數據庫的效率較低
- 在 JDK 中,提供了 JDBC-ODBC 橋的實現類(sun.jdbc.odbc.JdbcOdbcDriver)
部分本地API部分Java的驅動程序
- 這種類型的 JDBC 驅動程序使用 Java 編寫,它調用數據庫廠商提供的本地 API
- 通過這種類型的 JDBC 驅動程序訪問數據庫減少了 ODBC 的調用環節,提高了數據庫訪問的效率
- 在這種方式下需要在客戶的機器上安裝本地 JDBC 驅動程序和特定廠商的本地 API
JDBC網絡純Java驅動程序
- 這種驅動利用中間件的應用服務器來訪問數據庫。應用服務器作為一個到多個數據庫的網關,客戶端通過它可以連接到不同的數據庫服務器。
- 應用服務器通常有自己的網絡協議,Java 用戶程序通過 JDBC 驅動程序將 JDBC 調用發送給應用服務器,應用服務器使用本地程序驅動訪問數據庫,從而完成請求
本地協議的純 Java 驅動程序
-
多數數據庫廠商已經支持允許客戶程序通過網絡直接與數據庫通信的網絡協議。
-
這種類型的驅動程序完全使用 Java 編寫,通過與數據庫建立的 Socket 連接,采用具體與廠商的網絡協議把 JDBC 調用轉換為直接連接的網絡調用