我使用oracle驱动,配置了环境变量:C:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc14.jar;java代码如下:
package com.nj180.study.jdbc;
import java.sql.*;
public class FirstOracleJdbc {
public static void main(String[] args) throws ClassNotFoundException{
ResultSet rs=null;
Connection conn=null;
Class.forName("oracle.jdbc.driver.OracleDriver");
try {
conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:5500:test","myoracle","myoracle");
Statement st=conn.createStatement();
String sql="select * from student";
rs=st.executeQuery(sql);
while(rs.next()){
System.out.println("ID="+rs.getInt("id"));
System.out.println("Name="+rs.getString("name"));
System.out.println("pohne="+rs.getInt("pohne"));
System.out.println("Birthday="+rs.getInt("birthday"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try{
rs.close();
}catch(Exception e){

}

try{
conn.close();
}catch(Exception e){

}
}
}}
运行的时候报错:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
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 com.nj180.study.jdbc.FirstOracleJdbc.main(FirstOracleJdbc.java:20)
我的oracle账号在命令行里是可以登录的,是不是5500端口的错误呢?我是看oracle给我生成了Https://localhost:5500/em请高手指教。

解决方案 »

  1.   

    jdbc直连,端口1521。
    后面的test去掉,connection加上用户名和密码,则访问的就是登录用户名的所在数据库模式
      

  2.   

    5500/em
    em=enterprise manager企业管理器的服务的端口号,这是oracle的管理端的服务,它是一个web应用。
      

  3.   


    这个说错了,不好意思,test不要去掉。
      

  4.   

    jdbc:oracle:thin:@服务器ip地址:端口号:数据库名字"; 
      

  5.   

    今天终于找到了一个真正能玩的DNF私服,真的很好玩在这里分享给大家,希望大家也能来玩,呵呵。  他们的网站是: dantousf。cn
     171962830 在此一游! 
      

  6.   

     这个和代码没关系,是不能联上Oracle数据库,你确保你Oracle的服务和监听服务都开启了嘛?
      

  7.   

    同意,我不太了解Oracle的驱动方式,但是sqlServer的错误一般是网络监听TCP/IP未开启..
      

  8.   

    oracle数据库的默认端口号是1521;Class.forName("com.microsoft.jdbc.oracle.OracleDriver");
    DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1521;DatabaseName=你的数据库名字;user=用户名;password=密码");
      

  9.   

    jdbc直连,端口1521。
    Statement st=conn.createStatement();
    st.close()没有
      

  10.   

    jdbc直连,端口1521。
    后面的test去掉,connection加上用户名和密码,则访问的就是登录用户名的所在数据库模式