ODBC與JDBC比較,ODBCJDBC比較
在學習J2EE的JDBC過程中,剛見到JDBC就馬上聯想到了ODBC,而且我們可以肯定他們之間有必然的關係。開始學它的時候還是覺得有點暈,於是就查了很多資料,與比較熟悉的ODBC進行了比較。
先各自簡單介紹一下ODBC和JDBC。
ODBC(Open Database Connectivity)是一組對資料庫訪問的標準API,這些API通過SQL來完成大部分任務,而且它本身也支援SQL語言,支援使用者發來的SQL。ODBC定義了訪問資料庫API的一組規範,這些API獨立於形色各異的DBMS和程式設計語言。
也就是說,一個基於ODBC的應用程式,對資料庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的資料庫操作由對應的DBMS的ODBC驅動程式完成。不論是SQL Server、Access還是Oracle資料庫,均可用ODBC API進行訪問。
由此可見,ODBC的最大優點是能以統一的方式處理所有的資料庫。
JDBC(JavaDatabase Connectivity)是Java與資料庫的介面規範,JDBC定義了一個支援標準SQL功能的通用低層API,它由Java 語言編寫的類和介面組成,旨在讓各資料庫開發商為Java程式員提供標準的資料庫API。
JDBC API定義了若干Java中的類,表示資料庫連接、SQL指令、結果集、資料庫中繼資料等。它允許Java程式員發送SQL指令並處理結果。
其實JDBC和ODBC總的來說還是有更多的共同點:
比如,JDBC與ODBC都是基於X/Open的SQL調用級介面;
從結構上來講,JDBC的總體結構類似於ODBC,都有四個組件:應用程式、驅動程式管理器、驅動程式和資料來源,工作原 理亦大體相同;
在內容互動方面,JDBC保持了ODBC的基本特性,也獨立於特定資料庫. 而且都不是直接與資料庫互動,而是通過驅動程式管理器。
他們二者之間的區別:
我們知道,ODBC幾乎能在所有平台上串連幾乎所有的資料庫。為什麼 Java 不使用 ODBC? 答案是:Java 可以使用 ODBC,但最好是以JDBC-ODBC橋的形式使用(Java串連總體分為Java直連和JDBC-ODBC橋兩種形式)。 那為什麼還需要 JDBC? 因為ODBC 不適合直接在 Java 中使用,因為它使用 C 語言介面。從Java 調用本地 C代碼在安全性、實現、堅固性和程式的自動移植性方面都有許多缺點。從 ODBC C API 到 Java API 的字面翻譯是不可取的。例如,Java 沒有指標,而 ODBC 卻對指標用得很廣泛(包括很容易出錯的指標"void *")。 另外,ODBC 比較複雜,而JDBC 盡量保證簡易功能的簡便性,同時在必要時允許使用進階功能。如果使用ODBC,就必須手動地將 ODBC 驅動程式管理器和驅動程式安裝在每台客戶機上。如果完全用 Java 編寫 JDBC 驅動程式則 JDBC代碼在所有 Java 平台上(從網路電腦到大型主機)都可以自 動安裝、移植並保證安全性。 總之,JDBC 在很大程度上是借鑒了ODBC的,從他的基礎上發展而來。JDBC 保留了 ODBC 的基本設計特徵,因此,熟悉 ODBC 的程式員將發現 JDBC 很容易使用。它們之間最大的區別在於:JDBC 以 Java 風格與優點為基礎並進行最佳化,因此更加便於使用。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。