public class shoppingDao {
String driver="oracle.jdbc.OracleDriver";
String url="jdbc:oracle:thin:@localhost:1521:orcl";  OracleServiceORCL
String name="shopping";  这个shopping 是我用户的名字
String pwd="shopping";   这个是用户的密码
public Connection openget()throws Exception{
Class.forName(driver);
return DriverManager.getConnection(url,name,pwd);
} public static void main(String[] args) {
// TODO Auto-generated method stub
shoppingDao dao=new shoppingDao();
try {
dao.openget();
System.out.println("AAAAAAAAAAAA");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
报的是:java.sql.SQLRecoverableException: Io 异常: The Network Adapter could not establish the connection

解决方案 »

  1.   

    刚刚好像没打开监听  现在打开了 又报了另一个错误: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
     ??怎么办啊?
      

  2.   

    listener does not currently know of SID given in connect 
    SID正确?
    第三方工具可以连接上?配置下TNS。ora
      

  3.   

    确定下plsql 或sqlplus 能连上不?
      

  4.   

    我也怀疑是SID的问题,你确定监听设置正确?端口没问题?IP地址?数据库名字?顺带重启下监听看看
      

  5.   

    将tnsname.ora和listener.ora贴出来看看。
    lsnrctl status的结果也贴出来看看。
      

  6.   

    listener# listener.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST=localhost)(PORT = 1521))
        )
      )tnsnames
    # tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )  我现在是连网的时候 链接不上oracle数据库  那我在这文件里面要怎么改??
      

  7.   

    应该是ORCL名字不对吧? (SERVICE_NAME = orcl)中的orcl是指数据库哦
      

  8.   

    listener没有监听你的实例"orcl",要将你的实例添加到你的监听服务中。
    listener.ora修改程这样,然后重启监听服务,试试看。
    (ORACLE_HOME需要修改为你自己环境的路径)
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (ORACLE_HOME = E:\oracle\product\10.1.0\Db_2)
          (SID_NAME = ORCL)
        )
      )
    LISTENER =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST=localhost)(PORT = 1521))
      )
      )
      

  9.   

    (ORACLE_HOME = E:\oracle\product\10.1.0\Db_2)
      是什么意思 啊?
      有人说网线是不是有什么关系啊??
      

  10.   

    刚才 我把网线拔了 oracle数据库就连上去了 
       那么在插上网线的时候 为什么就不能连接oracle数据库呢? 有什么办法连接么? 急急急急急急!!!!!!!
      

  11.   

    ORACLE_HOME 就是oracle的产品目录。
    你配置好以后,可以试试看。
      

  12.   

    我在机器上搜了几遍 都没有ORACLE_HOME文件夹 只有几个网页和图片!!!!
      

  13.   

    ip变成了自动获取了啊,
    肯定不再与配置监听器里面的127.0.0.1匹配了啊,
    于是你的连接没有监听器的,
    所以用不了,
    拔网线后你本机的ip又变回了127.0.0.1所以又行了啊
      就算是用Ip地址也没有用啊  每次都会有一个新的地址!! 有什么办法解决没有??
      

  14.   

    SID是的全局数据库的ID要通过网络连接是要配置服务器的ip ,并不是自动获取ip。
      

  15.   

    搜索listener.ora文件,
    将其中ORACLE_HOME=E:\oracle\product\10.1.0\Db_2
    的"E:\oracle\product\10.1.0\Db_2"改成你自己机器上的地址。