2010-12-07 97 views

回答

4

太陽JRE中包含一個內置的JDBC/ODBC驅動程序(在sun.jdbc.odbc.JdbcOdbcDriver)。以下是如何使用它的示例:http://www.javacoffeebreak.com/articles/jdbc/

在Oracle JRE 8中刪除了該驅動程序,因此請使用Java版本7或更低版​​本。

+0

不,我知道如何使用jdbc-odbc ..我只想知道,我不能直接使用odbc而不使用jdbc驅動程序? – Mishthi 2010-12-07 15:59:42

+6

您可以直接從C應用程序使用ODBC,因爲ODBC是Windows中的DLL。你不能直接從Java調用DLL,你需要某種類型的JNI橋,這就是JdbcOdbcDriver的基本功能。 – rustyx 2010-12-07 16:03:51

+1

ok thanx ...我們必須使用jdbc-odbc驅動程序不能使用jdbc與數據庫進行交互,無需使用odbc? – Mishthi 2010-12-07 16:06:36

1

不能使用ODBC直接,因爲Java程序需要使用JDBC驅動程序與數據庫進行交互。

1

正如其他人所提到的,您可以使用JDBC/ODBC橋驅動程序。 (重複@ Rustam的鏈接:http://www.javacoffeebreak.com/articles/jdbc/)。

使用JDBC-ODBC橋時有幾件事要記住。第一:Sun出於各種原因不推薦使用它。使用橋而不是正確的JDBC驅動程序的前三個影響是:

  • 並不支持JDBC的所有功能。 ODBC是一種更嚴格的API,因此不支持某些功能(如事務中的保存點)。但是,最常見的功能,如準備好的語句是。
  • Java運行時轉換的本機代碼比使用Java執行所有操作要慢得多。
  • JDBC/ODBC驅動程序比適當的JDBC驅動程序更脆弱。實質上,如果ODBC驅動程序的實現者不以某種方式執行某些操作,則JDBC驅動程序將失敗並拋出一些可能無法捕獲的額外異常。特別是,你會更容易受到內存泄漏。如果你沒有建立一個長期運行的服務,你可能會好起來的。

也就是說,JDBC/ODBC驅動程序將適用於沒有直接JDBC支持的數據庫(大多數主要數據庫都可以)。有時你不需要所有那些奇特的功能,只想快速地把東西扔在一起。 JDBC/ODBC驅動程序專爲此而設計。

0

簡要回答:沒有。

ODBC(開放式數據庫連接)隱藏您正在與之通話的數據庫的詳細信息。它與Java無關。如果java程序需要與數據庫交談,那麼他們必須與ODBC驅動程序交互。要與ODBC驅動程序進行交互,您需要JDBC-ODBC驅動程序,它隱藏了通信發生的細節。你幾乎可以做幾個方法調用,並且都可以開始。抽象的力量。

0

我的理解是,你不會希望 - 當事情不完美時,它會變得單調乏味,容易出錯。

I.E.當/如果您從java內部調用非java的DLL時,您無法捕獲異常。

相關問題