java - 将 Java 7 ODBC 类包含到 Java 8

标签 java ms-access jdbc jdbc-odbc

我正在开发一个需要与 Microsoft Access 数据库通信的 Java 应用程序。从 Java 8 开始,ODBC-JDBC 连接已被删除。 因此,我们开始寻找 native 驱动程序,即 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),但我们确实需要时不时地更新。

- 将 Java 7 功能“侵入”Java 8 的风险有多大?

最佳答案

出于良心,我不能建议将 JDBC-ODBC Bridge 组件从 Java 7“破解”到 Java 8,因为除了这听起来像是一个坏主意™之外,JDBC-ODBC Bridge

  • 从未获得官方支持,也从未用于生产用途,
  • 出了名的有问题,而且
  • 始终无法正常使用 Access ODBC 来操作代码点 U+007F 以上的 Unicode 字符。

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

  1. 如果该项目仅针对 Windows 平台,并且与 Access 数据库的互操作性至关重要,那么我会认真考虑使用 C# 而不是 Java 来开发应用程序。

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

  3. 如果强制要求立即在 Java 8 上运行,并且我需要立即解决方案来使用 Access 数据库,我会考虑安装 SQL Server Express Edition(免费),创建 SQL Server "链接服务器”用于 Access 数据库,然后使用 SQL Server JDBC 驱动程序或 jTDS 通过 T-SQL 操作 Access 数据库。

关于java - 将 Java 7 ODBC 类包含到 Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38717778/

相关文章:

java - Jhipster 如何使用 JDL-studio 在 "Authority"实体中添加关系

java - Stringtemplate:是否可以将HashMap使用的模板应用于多值属性

java - 带有 scheduleAtFixedRate 的 Timer 和 TimerTask 在更新 TextView 时导致 CalledFromWrongThreadException 崩溃

ms-access - 使用 Access 在两个以上的表上模拟 FULL OUTER JOIN

java - 当我尝试使用 JDBC 连接到 MySQL 时遇到 "Communications link failure"错误

java - 似乎 JavaMail 的 MimeBodyPart.setFileName 在电子邮件中插入换行符并导致文件名显示为无效

mysql - 如何根据另一个表列中的预设数据查找列中不存在的数据

ms-access - 用于 Word/Access VBA 的 xlErrorHandler 类比

java - JSP+JDBC问题

elasticsearch - 如何获得多个记录?