是否可以从 Java 客户端通过网络访问 ODBC?
Posted
技术标签:
【中文标题】是否可以从 Java 客户端通过网络访问 ODBC?【英文标题】:Is it possible to access ODBC over the network from Java client? 【发布时间】:2013-06-05 01:59:53 【问题描述】:我正在寻找一种通过网络从运行在不同机器上的 Java 应用程序访问 Windows 机器上的 ODBC API 的方法。这可能吗?
一些笔记...
我不是试图直接连接到 ODBC API 并使用它来访问不同机器上的数据库服务器。那是 Java 客户端 -> JDBC -> ODBC -> 网络 -> 数据库,这可以使用正常的供应商提供的驱动程序和 JDBC/ODBC 桥接器。
我要做的是:Java Client -> JDBC -> Network -> [something] -> ODBC API。
在这种情况下,也无法直接在与 ODBC API 相同的 Windows 机器上运行 Java 程序。这显然是最简单的,但在这种情况下不起作用。
我想知道 [something](和相应的 JDBC 驱动程序)是否存在? JDBC 驱动程序是 JDBC/ODBC 桥的解决方案是可以接受的。
ASCII 格式:
Machine #1 (Linux) Machine #2 (Windows)
------------------ --------------------
Java Program
|
[Some JDBC Driver]
|
\---- TCP conection -----\
|
[something]
|
ODBC API
|
Vendor ODBC Driver
|
\---- Database
谢谢。
【问题讨论】:
【参考方案1】:您需要一个 JDBC-ODBC 桥。有许多免费的和商业的。 Sun(现在是 Oracle)有一个免费的,可以在 9 - JDBC-ODBC Bridge Driver 找到,但您会看到它只推荐用于实验,我听说它将在 Java 8 中删除。有一个商业的来自Easysoft,但它需要在安装了 ODBC 驱动程序的机器上安装服务器组件(服务)。
【讨论】:
JDBC-ODBC 桥只是使 ODBC API 通过 JDBC API 可用于在同一台机器上运行的 Java 应用程序。这并不能解决问题的“通过网络”部分。 我提到的商业 JDBC-ODBC 桥确实可以通过网络完成。以上是关于是否可以从 Java 客户端通过网络访问 ODBC?的主要内容,如果未能解决你的问题,请参考以下文章