【问题标题】:JDBC connection to remote oracle database does not work in jdk 7 and 8, but it works in jdk 6?与远程 oracle 数据库的 JDBC 连接在 jdk 7 和 8 中不起作用,但在 jdk 6 中起作用?
【发布时间】:2017-10-29 17:08:55
【问题描述】:

请在下面找到代码。我只能通过带有 ojdbc6.jar 的 jdk 6 获得连接。

在 jdk 7 和 8 中,我明白了,

网络适配器无法建立连接错误和连接 超时

远程 oracle 数据库在 Oracle 11g 上运行。

try {

                    Class.forName("oracle.jdbc.OracleDriver");

                } catch (ClassNotFoundException e) {

                    System.out.println("Where is your Oracle JDBC Driver?");
                    e.printStackTrace();
                    return;

                }

                System.out.println("Oracle JDBC Driver Registered!");

                Connection connection = null;

                try {


                    connection = DriverManager.getConnection("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=abcd.efg)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=OW_DEF)))","user","pwd#");
                } catch (SQLException e) {

                    System.out.println("Connection Failed! Check output console");
                    e.printStackTrace();
                    return;

                }

                if (connection != null) {
                    System.out.println("You made it, take control your database now!");
                } else {
                    System.out.println("Failed to make connection!");
                }

【问题讨论】:

  • 您使用的是哪个版本的 Oracle JDBC 驱动程序(请完整版)

标签: java oracle jdbc oracle11g


【解决方案1】:

在我看来,您的ojdbc6.jar 可能是旧版本。

请参考 this page ,有一些名为 - ojdbc6.jar 的驱动程序 jar 不适用于 JDK 7 和 8,只有版本 - 11.2.0.4 被提及为通过 认证JDK 8、JDK 7 和 JDK 6

您可以使用here中描述的方法检查您的驱动程序版本

我发现命令 - java -jar ojdbc6.jar -getversion 更方便。

用您的 jar 名称替换 jar 名称(如果您本地的名称不同)。

【讨论】:

  • 你好,谢谢你的回复。我用你提到的罐子试过了,还是一样的错误。
  • 您可以尝试来自 DataDirect 的商业 Oracle JDBC driver,它适用于多个 Oracle 和 JRE 版本,以隔离与您的网络/数据库相关的问题。注意:我受雇于 Progress。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2011-12-21
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多