是否可以从 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?的主要内容,如果未能解决你的问题,请参考以下文章

MS 通过 odbc 访问 mySql 连接慢

如何从 .NET 应用程序访问 HSQL DB?

ODBC 驱动程序在 Qt 中的使用

如何使用映射的网络驱动器通过数据源 (ODBC) 连接到 Access 数据库?

通过 JDBC 访问 Access(使用 ODBC?)

我怎样才能从我的用户锁定我的 MS-SQL 数据库,但仍然通过 ODBC 访问它?