我用的JDK 1.6  Oracle 11g  驱动是Oracle 11g自带的( ojdbc5.jar,ojdbc6.jar,ojdbc6_g.jar 三个都试过)代码如下:public class DBAccess { private static String driver = "oralce.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "system";
private static String password = "system"; public static Connection getConnection() {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}        public static void main(String[] args) {
System.out.println(DBAccess.getConnection());
}}控制台异常输出如下:
java.lang.ClassNotFoundException: oralce.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.liu.genius.db.DBAccess.getConnection(DBAccess.java:16)
at org.liu.genius.Test.main(Test.java:8)
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:orcl at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:460)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:465)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.liu.genius.db.DBAccess.getConnection(DBAccess.java:22)
at org.liu.genius.Test.main(Test.java:8)
null
问下是什么原因啊???

解决方案 »

  1.   

    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 
    The Connection descriptor used by the client was: 
    localhost:1521:orcl ----上面这句说了,你的sid不能被正确识别.private static String url = "jdbc:oracle:thin:@localhost:1521:orcl"; --核对一下这里的orcl,是否与数据库SID一致.
      

  2.   

    难道区分大小写吗????
    还是与listener文件有关啊??
    listener的内容如下
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
    随便问一句哪里能看SID???
    不过我很确定我的SID是ORCL。。
      

  3.   

    刚刚试过,改成大写的ORCL没有用。我在网上看到说,Oracle 11g 的连接的url好像跟以前写地不一样。在jdbc/readme.txt文件中有驱动的说明。可惜我看不懂
      

  4.   

    使用net configuration assistant配置你的连接串,主机名使用ip地址,经测试成功后再引用。
      

  5.   

    java.lang.ClassNotFoundException: oralce.jdbc.driver.OracleDriver 
    驱动问题了,
    jdbc(classes12.jar)驱动你怎么可以加 odbc(odbc5.jar,odbc6.jar,odbc6_g.jar )驱动?把classes12.jar加上吧
      

  6.   

    回4楼的:在net configuration assistant配置中有如下4个选项。
    1.监听程序配置
    2.命名方法配置
    3.本地Net服务名配置
    4.目录使用配置不知道您说的是那一个
    我全试了您所说的“主机名使用ip地址”在4.目录使用配置内有一个,可是配置出错。
    然后其他都什么可设置的。愿听详解。。注明:是oracle11g
      

  7.   

    回5楼:将oracle 9i 的 classes12.jar导入,结果一样。还是不能获得连接!~郁闷啊。
      

  8.   

    我再次仔细看了一下出的异常问题。。
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 
    The Connection descriptor used by the client was: 
    localhost:1521:orcl  是不是我的listener 文件没有配置好啊??
    我listener文件内容如下:
    LISTENER = 
      (DESCRIPTION_LIST = 
        (DESCRIPTION = 
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
        ) 
      )没有SID的配置,
    那个高手能帮我,应该怎么配。???
      

  9.   

    to BlueskyWide :
    我看了帮助文档,第三个是配置tnsnames.ora文件的。。一下是我本地的tnsnames.ora文件内容,如何修改请详解!~
    <alias>= [ (DESCRIPTION_LIST =  # Optional depending on whether u have 
    # one or more descriptions
    # If there is just one description, unnecessary ]
      (DESCRIPTION=
        [ (SDU=2048) ] # Optional, defaults to 2048
    # Can take values between 512 and 32K
        [ (ADDRESS_LIST=    # Optional depending on whether u have
    # one or more addresses
    # If there is just one address, unnecessary ]
          (ADDRESS=
    [ (COMMUNITY=<community_name>) ] 
    (PROTOCOL=tcp)
    (HOST=<hostname>)
    (PORT=<portnumber (1521 is a standard port used)>)
          )
          [ (ADDRESS=
      (PROTOCOL=ipc)
      (KEY=<ipckey (PNPKEY is a standard key used)>)
    )
          ]
          [ (ADDRESS=
      [ (COMMUNITY=<community_name>) ]
      (PROTOCOL=decnet)
      (NODE=<nodename>)
      (OBJECT=<objectname>)
    )
          ]
                  ... # More addresses
        [ ) ] # Optional depending on whether ADDRESS_LIST is used or not 
        [ (CONNECT_DATA=
    (SID=<oracle_sid>)
    [ (GLOBAL_NAME=<global_database_name>) ]
          )
        ]
        [ (SOURCE_ROUTE=yes) ]  
      )
      (DESCRIPTION=     
        [ (SDU=2048) ] # Optional, defaults to 2048
    # Can take values between 512 and 32K
        [ (ADDRESS_LIST= ] # Optional depending on whether u have more
    # than one address or not
    # If there is just one address, unnecessary
          (ADDRESS
    [ (COMMUNITY=<community_name>) ]
    (PROTOCOL=tcp)
    (HOST=<hostname>)
    (PORT=<portnumber (1521 is a standard port used)>)
          )
          [ (ADDRESS=
      (PROTOCOL=ipc)
      (KEY=<ipckey (PNPKEY is a standard key used)>)
             )
          ]
          ...  # More addresses
        [ ) ]  # Optional depending on whether ADDRESS_LIST  
    # is being used
        [ (CONNECT_DATA=
    (SID=<oracle_sid>)
    [ (GLOBAL_NAME=<global_database_name>) ]
          )
        ]
        [ (SOURCE_ROUTE=yes) ]
      )
      [ (CONNECT_DATA=
          (SID=<oracle_sid>)
          [ (GLOBAL_NAME=<global_database_name>) ]
        )
      ]
      ...   # More descriptions 
    [ ) ] # Optional depending on whether DESCRIPTION_LIST is used or not