java 中的 32 位和 64 位 JDBC 同时
32 and both 64 bit JDBC in java at same time
场景:我已经安装了一个 32 位的 ODBC 驱动程序连接到数据库 A,并安装了一个 64 位的 ODBC 驱动程序连接到数据库 B。
我知道我可以连接到 java x86 中的 32 位 ODBC 驱动程序和 java x64 中的 64 位 ODBC 驱动程序,但是如果我需要使用 64 位驱动程序怎么办? -位 ODBC 驱动程序和 32 位 ODBC 驱动程序在同一个 Java 应用程序中?
我可以在 Java 中连接到 32 位 ODBC 驱动程序和 64 位 ODBC 驱动程序吗?
很好奇
我可以在 java 中连接到 32 位 ODBC:JDBC 和 64 位 ODBC:JDBC 吗?
没有。你不能。无法从 64 位 JVM 调用 32 位本机代码。但是,ODBC 应该是 ODBC - 如果 你有一个 64 位 ODBC:JDBC 驱动程序那么它应该可以从 64 位连接Java.
可以,可以
- 使用来自 32 位 JVM 的 64 位 ODBC 驱动程序
- 使用来自 64 位 JVM 的 32 位 ODBC 驱动程序
- 在 32 位或 64 位应用程序中同时使用同一 Java 应用程序中的 64 位 ODBC 驱动程序和 32 位 ODBC 驱动程序JVM
您只需要使用 Type 3 JDBC 连接——一个 "multi-tier" JDBC-to-ODBC 桥接器——例如 Enterprise Edition JDBC Driver for ODBC Data Sources from my employer,来桥接"bitness" 差距。
Type 3 JDBC-to-ODBC 连接将 "pure Java" JDBC 驱动程序与您的 Java 应用程序放在 JVM 中,并通过 [=56] 进行通信=] 与一些基于 C 的 ODBC 客户端组件一起进入 "native" OS 环境与 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 "single-tier" JDBC-to-ODBC Bridge,例如 Lite Edition JDBC Driver for ODBC Data Sources from my employer that matches the bitness of the JVM and one ODBC driver (let's say 64-bit, here), and use the "multi-tier" JDBC-to-ODBC Bridge only for the other (32-bit) ODBC driver. Remember that 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.
场景:我已经安装了一个 32 位的 ODBC 驱动程序连接到数据库 A,并安装了一个 64 位的 ODBC 驱动程序连接到数据库 B。
我知道我可以连接到 java x86 中的 32 位 ODBC 驱动程序和 java x64 中的 64 位 ODBC 驱动程序,但是如果我需要使用 64 位驱动程序怎么办? -位 ODBC 驱动程序和 32 位 ODBC 驱动程序在同一个 Java 应用程序中?
我可以在 Java 中连接到 32 位 ODBC 驱动程序和 64 位 ODBC 驱动程序吗?
很好奇
我可以在 java 中连接到 32 位 ODBC:JDBC 和 64 位 ODBC:JDBC 吗?
没有。你不能。无法从 64 位 JVM 调用 32 位本机代码。但是,ODBC 应该是 ODBC - 如果 你有一个 64 位 ODBC:JDBC 驱动程序那么它应该可以从 64 位连接Java.
可以,可以
- 使用来自 32 位 JVM 的 64 位 ODBC 驱动程序
- 使用来自 64 位 JVM 的 32 位 ODBC 驱动程序
- 在 32 位或 64 位应用程序中同时使用同一 Java 应用程序中的 64 位 ODBC 驱动程序和 32 位 ODBC 驱动程序JVM
您只需要使用 Type 3 JDBC 连接——一个 "multi-tier" JDBC-to-ODBC 桥接器——例如 Enterprise Edition JDBC Driver for ODBC Data Sources from my employer,来桥接"bitness" 差距。
Type 3 JDBC-to-ODBC 连接将 "pure Java" JDBC 驱动程序与您的 Java 应用程序放在 JVM 中,并通过 [=56] 进行通信=] 与一些基于 C 的 ODBC 客户端组件一起进入 "native" OS 环境与 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 "single-tier" JDBC-to-ODBC Bridge,例如 Lite Edition JDBC Driver for ODBC Data Sources from my employer that matches the bitness of the JVM and one ODBC driver (let's say 64-bit, here), and use the "multi-tier" JDBC-to-ODBC Bridge only for the other (32-bit) ODBC driver. Remember that 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.