代码import java.sql.Connection;import java.sql.DriverManager;public class conn_demo {
//数据库驱动程序名
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
//数据库地址
public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:192.168.1.102";
//数据库用户名
public static final String DBUSER = "scott";
//数据库密码
public static final String DBPASS = "tiger";
public static void main(String[] args){
try{
Connection conn = null;
//加载数据库
Class.forName(DBDRIVER).newInstance();
//连接数据库
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
System.out.println(conn);
//关闭数据库
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}结果连不上,出现以下错误:java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at conn_orcl.conn_demo.main(conn_demo.java:22)怎么回事啊?

解决方案 »

  1.   

    public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:192.168.1.102";这个URL怎么看都不正确吧?最后那个IP地址应该是数据库实例名吧,比如:
    jdbc:oracle:thin:@127.0.0.1:1521:orcl另外你确定数据库启动了么?能否 telnet localhost 1521 ?
      

  2.   

    数据库服务开着,我还在创建数据库脚本;1521也确定是,我查了oracle里的配置和移植工具中的Net Mananger看是1521;数据库实例名,是我装Oracle时第一步那的数据库名称吧?如果是,我设置是orcl,可是我换成orcl还是连不上?怎么回事,奇怪了
      

  3.   

    public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:DBName";
    DBName就是你要连接的数据库名字  是你创建的数据库名字
      

  4.   

    “java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection”
    这个错误确实就是网络问题,而且甚至还没到找不到数据库实例名称的环节。我建议你还是命令行(CMD)执行:telnet localhost 1521
    如果当场就黑屏了,说明端口是OK的;否则可能是监听器没开或其它原因。
      

  5.   

    我确定服务的两个都开着,全是自动。那个orcl是安装时默认的数据库名啥,我没改,应该没问题啊,还是没找出来问题
      

  6.   

    我也出现了类似的错误!!以下纯属个人观点:
    1.有人说把localhost换成IP地址就可以了 
      你可以试下  好像是因为什么文件的问题
    2.如果不行看下oracle的监听是不是打开了 有时候打开了刷新下就会关闭你试下!
      如果是这种情况的话可能是因为G:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
      这个文件夹下 listener 和tnsnames 里面的(HOST = XP-201112051028)(PORT = 1521))写的不 一样造成的改成一样的就行(谨慎修改)
    3.如果以上都不行的话就只能重新安装数据库
      希望可以帮到你!!
      

  7.   

    我也出现了类似的错误!!以下纯属个人观点:
    1.有人说把localhost换成IP地址就可以了 
      你可以试下  好像是因为什么文件的问题
    2.如果不行看下oracle的监听是不是打开了 有时候打开了刷新下就会关闭你试下!
      如果是这种情况的话可能是因为G:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
      这个文件夹下 listener 和tnsnames 里面的(HOST = XP-201112051028)(PORT = 1521))写的不 一样造成的改成一样的就行(谨慎修改)
    3.如果以上都不行的话就只能重新安装数据库
      希望可以帮到你!!
      

  8.   

    我也出现了类似的错误!!以下纯属个人观点:
    1.有人说把localhost换成IP地址就可以了 
      你可以试下  好像是因为什么文件的问题
    2.如果不行看下oracle的监听是不是打开了 有时候打开了刷新下就会关闭你试下!
      如果是这种情况的话可能是因为G:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
      这个文件夹下 listener 和tnsnames 里面的(HOST = XP-201112051028)(PORT = 1521))写的不 一样造成的改成一样的就行
    3.如果以上都不行的话就只能重新安装数据库
      希望可以帮到你!!
      

  9.   

    第一,URL肯定不对,写法参考楼上
    对于oraclo这种东西,尽量不要用localhost这种命名,它不是根据系统host转换的,请指定ip地址第二,用telnet测试连接先
      

  10.   

    多谢各位,问题一解决,是ORACLE安装时网络出现问题了