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:
127.0.0.1:1521:myUser at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Dome.getConn(Dome.java:18)
at Dome.main(Dome.java:29)
我刚安装的oracle 11g,还不会用,大家教教。
public class Dome { private String url = "jdbc:oracle:thin:@127.0.0.1:1521:myUser";
private String uid="system";
private String pwd="orcl";
private Connection conn=null;
//private String sql="select * from myUser";

public Connection getConn()
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection(url,uid,pwd);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

public static void main(String[] args) {
Dome dome=new Dome();
Connection conn=dome.getConn();
if(conn==null)
{
System.err.println("失败");
}else{
System.err.println("成功");
}
}
}

解决方案 »

  1.   

    sid是我的数据库名撒
        我创建的数据叫myUser
      

  2.   

    数据库SID名不一定是连接名,看一下你的连接名(也就是你的TNS名称)是什么吧。
      

  3.   

    TNS名称描述在"oracle_home"/network/admin/tnsnames.ora 如以下红色部份
    TEST =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.48.22)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = TEST)
        )
      )
      

  4.   

    把myUser改为TEST,再测一下。thin JDBC中用的应该是实际的实例名,而不是服务名。