JDBC(Java Database Connectivity)
JDBC是一個獨立于特定數據庫管理系統,通用的SQL數據庫存取和操作的公共接口(一組API),定義了用來訪問數據庫的標準Java類庫,使用這個類庫可以以一種標準的方法、方便地訪問數據庫資源
JDBC為訪問不同的數據庫提供了一種統一的途徑,為開發者屏蔽了一些細節問題。
JDBC的目標是使Java程序員使用JDBC可以連接任何提供了JDBC驅動程序的數據庫系統,這樣就使得程序員無需對特定的數據庫系統的特點有過多的了解,從而大大簡化和加快了開發過程。
JDBC接口(API)包括兩個層次:
- 面向應用的API:Java API,抽象接口,供應用程序開發人員使用(連接數據庫,執行SQL語句,獲得結果)。
- 面向數據庫的API:Java Driver API,供開發商開發數據庫驅動程序用。
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)
jdbc-odbc橋 -
部分本地API部分Java的驅動程序
這種類型的 JDBC 驅動程序使用 Java 編寫,它調用數據庫廠商提供的本地 API
通過這種類型的 JDBC 驅動程序訪問數據庫減少了 ODBC 的調用環節,提高了數據庫訪問的效率。在這種方式下需要在客戶的機器上安裝本地 JDBC 驅動程序和特定廠商的本地 API
部分本地API部分Java的驅動程序 -
JDBC網絡純Java驅動程序
這種驅動利用中間件的應用服務器來訪問數據庫。應用服務器作為一個到多個數據庫的網關,客戶端通過它可以連接到不同的數據庫服務器。應用服務器通常有自己的網絡協議,Java 用戶程序通過 JDBC 驅動程序將 JDBC 調用發送給應用服務器,應用服務器使用本地程序驅動訪問數據庫,從而完成請求。
JDBC網絡純Java驅動程序.png -
本地協議的純 Java 驅動程序
多數數據庫廠商已經支持允許客戶程序通過網絡直接與數據庫通信的網絡協議。
這種類型的驅動程序完全使用 Java 編寫,通過與數據庫建立的 Socket 連接,采用具體與廠商的網絡協議把 JDBC 調用轉換為直接連接的網絡調用。
本地協議的純 Java 驅動程序
</br></br></br></br>
END
以上內容根據<a >尚硅谷</a>教學課件整理
PS:歡迎評論、指證,一起學習、探討。