1

我正在使用调用 API 将 JRE 嵌入到现有的 C 应用程序中,并且我希望能够使用 JDBC 来处理该代码中的数据库。该应用程序是一个事务处理应用程序,数据库事务由应用程序的 C 部分中的代码管理,Java 代码必须在该事务中运行。这意味着我无法打开 连接,我必须重新使用现有连接。

那么,有没有办法在设置 JRE 时提供对现有 ODBC 连接句柄的 JDBC 访问?也许是一些 JDBC-ODBC 桥,但与现有的驱动程序不同,它可以设置为使用现有的连接和事务。

在我看来,我的其他选择如下:

  • 为应用程序中可能的每个 C 操作提供 java 等效项(由于很多原因,这是不可取的——我们有很多方法,复制它们是一件很痛苦的事情。

  • 编写我自己的 JDBC 驱动程序,用 JNI 包装 ODBC 连接。当然,这将是一个有趣的周末(月)项目,但我希望需要比这更快的事情完成。

帮助我,Stack-Overflow,你是我唯一的希望!

4

2 回答 2

1

不知道这是否可行,但是... 我快速浏览了 Sun 的 JDBC-ODBC 桥的反编译源代码。似乎您可以对 JdbcOdbcConnection 进行子类化,以便它使用已知的连接句柄和已经打开的状态来初始化自己。这假定 Java 端的连接句柄是实际的 ODBC 连接句柄或指向连接对象的指针,并且 JDBC-ODBC 桥使用的 ODBC 库和您的代码在它们可以共享连接句柄的意义上是兼容的。

不过,您需要检查 Sun 的许可证是否允许开发人员执行此类诡计。

于 2008-10-07T21:22:06.413 回答
0

Sun在 JDK 中提供了一个JDBC-ODBC 桥。

编辑:重读听起来你已经知道它并且不想使用它。

于 2008-10-07T20:31:03.053 回答