32,同时在java中同时使用64位JDBC

时间:2016-11-18 10:36:57

标签: java jdbc x86 odbc 64-bit

场景:我已经安装了32位ODBC驱动程序来连接数据库A,并安装了64位ODBC驱动程序连接到数据库B.

我知道我可以连接到java x86中的32位ODBC驱动程序和java x64中的64位ODBC驱动程序,但如果我需要使用64位ODBC驱动程序和32位ODBC,该怎么办?同一Java应用程序中的驱动程序?

我可以用Java连接到32位ODBC驱动程序和64位ODBC驱动程序吗?

我对此非常好奇。

2 个答案:

答案 0 :(得分:3)

我可以连接到32位ODBC:JDBC和两者都连接到64位ODBC:Java中的JDBC吗?

没有。你不能。无法从64位JVM调用32位本机代码。但是,ODBC应该是ODBC - 如果 您有64位ODBC:JDBC驱动程序,那么它应该可以从64位Java连接。

答案 1 :(得分:0)

是的, 你可以

  • 使用32位JVM中的64位ODBC驱动程序
  • 使用64位JVM中的32位ODBC驱动程序
  • 同时使用来自同一Java应用程序的64位ODBC驱动程序和32位ODBC驱动程序,在32位或64位JVM中 < / LI>

您只需要使用Type 3 JDBC连接 - &#34;多层&#34; JDBC-to-ODBC Bridge - 例如来自Enterprise Edition JDBC Driver for ODBC Data Sourcesmy employer,用于桥接&#34; bitness&#34;间隙。

Type 3 JDBC-to-ODBC连接提供了一个纯粹的Java&#34; JVM中的JDBC驱动程序与您的Java应用程序,并通过TCP / IP与一些基于C的ODBC客户端组件进行通信,这些组件位于&#34; native&#34;带有ODBC驱动程序的操作系统环境 - 它们不需要在彼此相同的主机上,也不需要与JVM位于同一主机上。

Type 3 JDBC Driver in 32-bit JVM
   -> ... TCP/IP ... 
      -> 64-bit ODBC Bridge Middleware
         -> 64-bit ODBC Driver 

Type 3 JDBC Driver in 64-bit JVM
   -> ... TCP/IP ... 
      -> 32-bit ODBC Bridge Middleware
         -> 32-bit ODBC Driver 

您可以选择使用Type 1&#34;单层&#34; JDBC-to-ODBC Bridge,例如来自Lite Edition JDBC Driver for ODBC Data Sourcesmy employer,它匹配JVM的位数和一个ODBC驱动程序(在这里说64位),并使用&# 34;多层&#34; JDBC-to-ODBC Bridge仅适用于其他(32位)ODBC驱动程序。 请记住Java 8 and later no longer include the Sun JDBC-to-ODBC Bridge (classname sun.jdbc.odbc.JdbcOdbcDriver, used jdbc:odbc:<dsn>;UID=<uid>;PWD=<pwd> URLs) in the JVM