包括 Java 7 ODBC 类 到 Java 8

Include Java 7 ODBC classes to Java 8

我正在开发需要与 Microsoft Access 数据库通信的 Java 应用程序。自 Java 8 起,ODBC-JDBC 连接已被移除。 出于这个原因,我们开始寻找本机驱动程序,JDBC 驱动程序。

我们使用了 UCanAccess,这似乎运行良好,但经过更深入的测试后,我们发现处理速度不够快,这意味着我们不能将其用作替代品。

我们研究了多个提供此功能的库,但没有一个可以提供我们想要的速度。我们正在考虑重构(优化)代码以获得性能,不幸的是这需要时间。

我们找到了一个博客,其中描述了我们如何通过从 Java 7 JRE 中选择一些 类 来启用 Java 8 中的 ODBC 功能。 这将是赢得一些时间的好方法,因此我们可以优化代码。 http://bigfatball.blogspot.nl/2016/03/how-to-enable-jdbc-odbc-bridge-for-jdk-8.html

我们可以控制安装的 JRE(我们可以手动添加 jar 和 dll)但我们确实需要不时更新。

- 'hacking' 这个 Java 7 功能变成 Java 8 的风险是什么?

出于良心,我不能推荐 "hacking" JDBC-ODBC Bridge 组件从 Java 7 到 Java 8 因为除了它听起来像Bad Idea™,JDBC-ODBC 桥

  • 从未得到官方支持,也从未打算用于生产,
  • 臭名昭著,
  • 无法与 Access ODBC 一起正常工作以操作代码点 U+007F 以上的 Unicode 字符。

如果我发现自己处于类似情况,那么我会考虑以下几点:

  1. 如果这个项目只针对 Windows 平台,并且与 Access 数据库的互操作性是必不可少的,那么我会认真考虑用 C# 而不是 Java 开发应用程序。

  2. 如果在 Java 中编码是绝对的要求,并且我希望在短期内重构我的代码,那么我会尝试坚持使用 Java 7,直到重构完成完成,然后查看 UCanAccess 是否可以提供可接受的性能。

  3. 如果 运行 在 Java 8 现在 是强制性的,我需要一个立即解决方案来处理 Access 数据库,我会考虑安装 SQL Server Express Edition(免费),为 Access 数据库创建一个 SQL Server "Linked Server",然后使用 SQL Server JDBC 驱动程序或 jTDS使用 T-SQL.

  4. 操作 Access 数据库