2010-12-07 99 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时,您无法捕获异常。

相关问题