2012-03-05 224 views
0

我閱讀了一本書中使用JDBC API的驅動程序。不清楚解釋。我想知道下面的代碼使用什麼類型的驅動程序。它是4型驅動程序(由數據庫供應商提供的java驅動程序)。有人提到沒有必要在類型4驅動程序的客戶端應用程序中安裝。但是我們仍然需要使用類文件com.mysql.jdbc.Driver來使代碼正常工作。不知道這裏是什麼意思。關於JDBC驅動程序

此外,它提到了類型2驅動器使用數據庫供應商的驅動程序的二進制代碼,它需要安裝在客戶端。它與下面的例子有什麼不同。如果可以粘貼示例代碼來訪問類型2驅動程序,將會有所幫助。

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
String url = "jdbc:mysql://localhost/coffeebreak"; 
conn = DriverManager.getConnection(url, "username", "password"); 
doTests(); 
conn.close(); 
+0

標準[Java JDBC教程](http://docs.oracle.com/javase/tutorial/jdbc/index.html)可能會有用 – DNA 2012-03-05 23:01:16

+0

非常感謝信息 – Arav 2012-03-06 23:23:32

回答

4

當你看到那句「沒有什麼需要安裝」中提到的類型4 JDBC驅動程序(尤其是在舊的文檔),它指的是什麼,除了司機罐子本身需要安裝的事實客戶機。您需要的驅動程序jar不管是什麼,但與其他類型:

  • 類型1:ODBC和ODBC驅動程序將需要在客戶端系統上安裝
  • 類型2:本地數據庫驅動程序會需要在客戶機系統上安裝
  • 類型3:一個協議代理服務器將需要在客戶端系統和數據庫之間安裝

因此,例如,一個Oracle 2型驅動器(除jdbc jar本身)需要在機器上安裝完整的oracle客戶機那將運行java代碼。

有兩點要注意:

  • 由於Java 6(IIRC),擁有現代化的JDBC驅動程序,您不需要的Class.forName聲明瞭。較新的JDBC驅動程序現在會自動註冊。

  • 你不能通過查看使用它的代碼(這是整個觀點),但是mysql jdbc驅動程序是一個4型驅動程序。

  • 由於您無法通過使用驅動程序來區分差異,因此使用類型2驅動程序的示例代碼與您在問題中提供的示例代碼相同。

  • 供應商提供的所有類型的jdbc驅動程序(類型1除外,因爲只有一個實例)功能驅動程序。該類型是指驅動程序如何連接到數據庫,而不是由誰來提供。

  • 類型2司機這些天是非常罕見的,國際海事組織,沒有人真的使用類型1或3驅動程序了。現在,幾乎所有現代的,有生產價值的jdbc驅動程序都是類型4.(我知道oracle提供了類型2和類型4驅動程序,但這是我能想到的唯一一個,並且這兩個驅動程序具有相同的功能。)除非您有一些高度的來自數據庫供應商的特定建議,否則請使用類型4。

此外,您引用的語言聽起來相當過時。 JDBC的基礎知識在一段時間內並未發生重大變化,但即使如此,您可能也想查看一本較新的書籍。

+1

我剛剛學會了一個小船。謝謝。 – Synesso 2012-03-05 23:49:17

+0

非常感謝您的信息 – Arav 2012-03-06 23:22:52