JDBC 與ODBC的區別


一、ODBC(Open   DataBase   Connectivity   :  開放數據連接) 
   
   
  ODBC  總體結構
 
 應用程序
   
 執行處理並調用odbc函數,提交sql語句並檢索結果
 
   
  Driver   Manager  
 管理應用程序和驅動程序之間的通訊,根據應用程序加載並卸載驅動程序,
 
 處理odbc函數調用,獲把它們傳送到驅動程序
 
   
 驅動程序
       
 處理odbc函數調用,把sql語句提交到數據源,並返回結果到應用程序,如有必要,
 
 驅動程序修改一個應用程序請求,以使請求與相關的DBMS支持的語法一致
 
   
 數據源
     
 用戶要訪問的DBMS,以及相關
os  
   
                  Application  
                          |  
                          |    
              Driver   Manager  
        |                   |                   |  
        |                   |                   |  
 驅動程序   驅動程序   驅動程序
 
        |                   |                   |  
 數據源       數據源       數據源
 
   
   
   
 結合現實的高層開發工作流程如下:
 
  1.數據應用系統首先獲得在ODBC數據源管理器中建立的DSN(存儲了與數據提供程序連接的詳細信息包含數據庫位置、數據庫類型及相應的ODBC驅動程序等),然后  Driver   Manager依賴一種叫做數據庫獨立的交流(Database   Indepedent   Communications   Technology)的技術與數據源建立聯系(其中涉及客戶端和服務器端多種Agent對象的問題,詳情不敘,可參見下圖
).  
   
     
  2.Driver   Mangaer調用特定ODBC驅動程序將ODBC標准API轉化為適用於具體數據庫系統的函數調用(數據庫特征不同之處也在這里翻譯如SQL語法差異等),然后經由客戶端的Request   Agent發送到數據源
.  
  3.數據源Database   Agent處理操作,將結果返回到客戶端的Request   Agent,再向上經Driver(這里會有翻譯和標准化錯誤碼的行為)、Driver   Mangaer返回給
Application.    
   
       需要說明的是定義和操作光標、維護事務、負責任何與訪問數據源的必要軟件層進行交互(包括與底層網絡文件系統接口的軟件)等行為亦由驅動程序完成
.  
       
       結合ODBC   API調用順序描敘工作流程:初始化(分配環境--->分配連接句柄--->與服務器連接--->分配語句句柄)-------->SQL處理(語句處理和檢索部分)-------->終止(釋放語句句柄--->與服務器斷開--->釋放連接句柄--->釋放環境
).  
   

 

二、JDBC(Java   DataBase   Connectivity   :   Java數據庫連接)  
   
   
   
   
    JDBC
設計很多借鑒於ODBC: 
                          1.JDBC與ODBC都是基於X/Open的SQL調用級接口
 
                          2.JDBC很多設計思想沿襲了ODBC,包括許多抽象和SQL   CLI實現
 
                          3.JDBC的總體結構類似於ODBC,有四個組件:應用程序、驅動程序管理器、驅動程序和數據源,工作原 理亦大體同於
ODBC.  
   
  1.JDBC保持了ODBC的基本特性,也獨立於特定數據庫
.  
  2.使用相同源代碼的應用程序通過動態加載不同的JDBC驅動程序,可以訪問不同的DBMS.連接不同的  DBMS時,各個DBMS之間僅通過不同的URL進行標識
.  
  3.JDBC的DatabaseMetaData接口提供了一系列方法,可以檢查DBMS對特定特性的支持,並相應確定有什 么特性,從而能對特定數據庫的特性予以支持
 
  4.JDBC也支持在應用程序中同時建立多個數據庫連接,采用JDBC可以很容易地用SQL語句同時訪問多個 異構的數據庫,為異構的數據庫之間的互操作奠定基礎
 
   
  Java的驅動解決方案有四種:1.JDBC-ODBC   Bridge   2.本機API/集團式Java驅動程序    3.網絡協議/全Java     4.本機協議/全Java  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM