场景:我已经安装了32位ODBC驱动程序来连接数据库A,并安装了64位ODBC驱动程序连接到数据库B.
我知道我可以连接到java x86中的32位ODBC驱动程序和java x64中的64位ODBC驱动程序,但如果我需要使用64位ODBC驱动程序和32位ODBC,该怎么办?同一Java应用程序中的驱动程序?
我可以用Java连接到32位ODBC驱动程序和64位ODBC驱动程序吗?
我对此非常好奇。
答案 0 :(得分:3)
我可以连接到32位ODBC:JDBC和两者都连接到64位ODBC:Java中的JDBC吗?
没有。你不能。无法从64位JVM调用32位本机代码。但是,ODBC应该是ODBC - 如果 您有64位ODBC:JDBC驱动程序,那么它应该可以从64位Java连接。
答案 1 :(得分:0)
是的, 你可以
您只需要使用Type 3 JDBC连接 - "多层" JDBC-to-ODBC Bridge - 例如来自Enterprise Edition JDBC Driver for ODBC Data Sources的my employer,用于桥接" bitness"间隙。
Type 3 JDBC-to-ODBC连接提供了一个纯粹的Java" JVM中的JDBC驱动程序与您的Java应用程序,并通过TCP / IP与一些基于C的ODBC客户端组件进行通信,这些组件位于" native"带有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"单层" JDBC-to-ODBC Bridge,例如来自Lite Edition JDBC Driver for ODBC Data Sources的my employer,它匹配JVM的位数和一个ODBC驱动程序(在这里说64位),并使用&# 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。