-------------------------------------------------------------------------------------------------------------
软件版本:
oracle: 10g
myeclipse: 6.5
IP地址:192.168.1.100(屏的 ipconfig)
-------------------------------------------------------------------------------------------------------------
报错信息:
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:413)
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(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.oracle.TestOracleByJDBC.main(TestOracleByJDBC.java:9)
-------------------------------------------------------------------------------------------------------------
关键代码:
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@192.168.1.100:1521:javaAndOracleTest";
Connection conn = DriverManager.getConnection(url,"ORDSYS","oracle123");
Statement statement = conn.createStatement();
String sql = "select * from emp";
ResultSet result = statement.executeQuery(sql);
while(result.next())
{
System.out.println("用户名:" + result.getString(2) );
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
报错行代码:
String url = "jdbc:oracle:thin:@192.168.1.100:1521:javaAndOracleTest";
Connection conn = DriverManager.getConnection(url,"ORDSYS","oracle123");
估计就是这个url报错了。-------------------------------------------------------------------------------------------------------------
原图:可以不太清楚,不好意思....图片1
图片2
图片3-------------------------------------------------------------------------------------------------------------
图片1:图片2:图片3:
4

解决方案 »

  1.   

    The Network Adapter could not establish the connection-- 驱动有没有问题?监听有配置吗?
      

  2.   

    首先检查tnsname.ora配置是否正确,可以通过sqplplus连接看看能否成功
    其次检查jdbc驱动程序版本是否正确
      

  3.   

    你的ORACLE_SID实例名是什么来着?
    javaAndOracleTest很可能是错的,不应该填tnsname,应该是SID的值。
      

  4.   

    我用odbc就没有问题,如下:
    try {
    //1.加载驱动
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conn = DriverManager.getConnection("jdbc:odbc:javaAndOracleTest", "ORDSYS", "oracle123");
    Statement statement = conn.createStatement();
    String sql = "select * from emp";
    ResultSet result = statement.executeQuery(sql);
    while(result.next())
    {
    System.out.println("用户名:"+result.getString(2));
    }
    //关闭链接
    //result.close();
    //statement.close();
    //conn.close();
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
      

  5.   

    odbc连接串里头用的可不是sid值,是tnsname项的值。
    jdbc连接里用的是SID值。看一看jdbc和odbc的readme就知道了。
      

  6.   

    String url = "jdbc:oracle:thin:@192.168.1.100:1521:javaAndOracleTest";
    怀疑你这句话有问题。因为在oracle中,安装时,数据库的实例名称应该是不能够超过6位(还是8位,忘记了)字符的。然而你在连接数据库时,使用的oracle instance名称是‘javaAndOracleTest’
    所以无论数据库实例名称的最大允许字符数是6或8位字符,你都超过了上限。
    最后:记住,连接数据库时,应该是数据库实例名,不是网络服务名。