删除 Java 8 中的 JDBC ODBC 桥接

2022-09-01 05:52:29

从 Java 8 开始,JDBC-ODBC Bridge 将不再包含在 JDK 中。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown

是否有任何其他解决方案连接 JDBC-ODBC 桥接?


答案 1

我们仍然可以在java 8中使用JDBC-ODBC Bridge,只需遵循这个简单的配方:

  1. 下载 JDK 7 或 JRE 7。
  2. 转到 JRE\lib 文件夹并找到 rt.jar
  3. 解压缩它(如果您安装了WinRAR或7zip),或者您可以将其重命名为rt.zip并解压缩它。
  4. 将 sun\jdbc 和 sun\security\action 文件夹复制出来,保留文件夹结构。即,您应该具有如下文件夹结构:

    Sun --> Security --> Action
        --> JDBC
    
  5. 打开一个 CMD 窗口。转到 Sun 文件夹的父文件夹。运行以下命令:jar -cvf jdbc.jar sun

  6. 上面的命令将创建一个名为jdbc的文件.jar
  7. 将 JDBC.jar复制到 JDK8 或 JRE8 文件夹中。如果这不起作用,请尝试该文件夹。liblib\ext
  8. 将 jdbcodbc.dll 从 JRE 7 安装的 JRE\bin 复制到 JRE 8 安装的 JRE\bin。
  9. 重新启动 JVM。

如何为 JDK 8 启用 JDBC-ODBC 网桥


答案 2

好吧,在我看来,Oracle员工的这篇博客文章说明了一切:

我建议您使用数据库供应商提供的 JDBC 驱动程序或商业 JDBC 驱动程序,而不是 JDBC-ODBC 桥接。

您正在将 JDBC-ODBC 桥接用于哪种类型的应用程序?

  • 如果是生产代码,您应该恕我直言,将桥接器替换为真正的驱动程序,并将旧数据库替换为真正的驱动程序尽快
  • 如果它是与 Access DB、Excel 电子表格或您可以通过 ODBC 访问的任何内容交互的测试代码,请尝试将其替换为纯 Java 数据库(如 H2)
  • 如果您将其用于临时访问旧版 Access DB,例如用于开发和/或分析目的,并且确实不能或不想更新任何内容,则可以在很长一段时间内坚持使用 JDK 7,直到其生命周期结束日期,甚至可能远远超过此日期

推荐