【问题标题】:How to connect java program with oracle 11g如何用oracle 11g连接java程序
【发布时间】:2015-12-09 03:12:15
【问题描述】:

我有这个 JAVA 代码

public class Mian {

    public static void main(String[] args) {

         try {
            Class.forName("oracle.jdbc.Driver.OracleDriver");
            Connection conn =  DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:aaa","aaa","aaa");
            Statement st = conn.createStatement();
        } catch (Exception e) {
            System.out.println("error : " + e);
        }  
    }
}

我无法连接由 oracle 11g 创建的数据库

Database name = aaa ,,, user name = aaa ,,, password = aaa

我在我的项目 ojdbc6.jar 中导入驱动程序

为什么我在运行程序时显示此错误?

错误:java.lang.ClassNotFoundException:oracle.jdbc.Driver.OracleDriver

【问题讨论】:

  • 试试oracle.jdbc.driver.OracleDriver(小写d)。而且,如果我没记错的话,驱动程序已移至oracle.jdbc.OracleDriver(第一个已弃用)。
  • 你试过搜索ClassNotFoundException是什么意思吗?
  • 在我的编辑之后,它显示新错误“java.sql.SQLException:侦听器拒绝连接并出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的 SID” ,这段代码是什么意思?

标签: java oracle jdbc oracle11g


【解决方案1】:

每当您看到 ClassNotFoundException,您就会遇到以下两个问题之一:

  1. 您使用了错误的课程名称
  2. 您的类路径中缺少某些内容。

在这种情况下,您需要使用“oracle.jdbc.driver.OracleDriver”,如前所述。

您还需要来自 Oracle 的名为“ojdbc#number#.jar”的 jar 文件,其中 #number# 是您希望代码执行的最低 Java 版本。例如,“ojdbc6.jar”仅适用于 Java 6 或更高版本。

如果您的代码确实可以编译,那么您的编译类路径中有这个 jar。执行代码时,您还需要在运行时类路径中使用它。

您真的确定,您有一个运行在本地主机上的 Oracle 副本,其 SID 或服务名称为“aaa”?这似乎极不可能。如果您使用的是 Oracle Express,那么它是“XE”。这意味着您的网址将是:

jdbc:oracle:thin:@localhost:1521:XE","aaa","aaa"

【讨论】:

    猜你喜欢
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2011-11-01
    相关资源
    最近更新 更多