2013-08-05 43 views
-2

JDBC驅動程序的實現提供了允許客戶端與第三方數據庫進行通信的底層細節。我只是好奇它在幕後做了些什麼。用不同語言編寫的兩個系統之間的通信通常通過Web服務進行。JDBC驅動程序實現如何工作?

jdbc驅動程序是否使用Web服務在客戶端和數據庫服務器之間進行通信?還是我簡單化了?

+1

http://en.wikipedia.org/wiki/JDBC_driver –

+0

JDBC驅動程序使用數據庫的低級協議,這些協議通常不是使用web服務實現的,而是使用套接字實現的。 –

+0

我認爲您應該先閱讀JDBC驅動程序的內容,以及使用JDBC訪問Java中的數據庫的不同要求。 –

回答

2

誰寫的JDBC驅動程序的人有several options可供選擇:

  • Type 1驅動程序:使用通用JDBC-ODBC橋,實際上並沒有造成駕駛。
  • 類型2:製作一個使用JNI調用本地客戶端庫中的函數的「包裝器」。
  • 類型3:連接到與數據庫交談的「中間件」服務的通用驅動程序。
  • 類型4:數據庫通信協議的純Java實現。

類型3驅動程序可能使用Web服務與中間件進行通信。其他類型的驅動程序很可能通過TCP/IP套接字(如果數據庫位於遠程主機上)以特定於數據庫的二進制協議或其他合適的可靠傳輸方式進行通信,而不是通過Web服務進行通信。

+1

Downvoter,關心評論? – Joni

+1

哪一部分是不確定的,@Ajay? – Joni

+0

+1這個優秀的答案。 @AjayBhojak你的評論是無法解釋的,我當然不知道你的意思是'信息不應該被分享'。這是這個網站的目的。 – EJP

0

您應該檢查這link,因爲這會向您顯示JDBC如何工作。

現在回到您的問題:沒有JDBC不使用Web服務。它連接到不同類型的數據庫的方式是由於數據庫供應商,因爲不同的數據庫供應商提供他們自己的驅動程序實現,你只需要使用該實現。沒有什麼像Web服務。每個數據庫供應商都提供了一些自己的api來訪問數據庫,這些數據庫映射到Java的api以訪問通用數據庫。 Java爲數據庫操作提供了一個通用API,它最終使用套接字執行數據庫操作和通信。

所以你需要閱讀的是TCP/IP,Socket編程,IO和JDBC。請不要忘記檢查鏈接,它肯定會幫助你理解這個概念。