oracle 9i
public Connection getConn() throws SQLException {
String sDBDriver = "oracle.jdbc.driver.OracleDriver";
String sConnStr = "jdbc:oracle:thin:@zhwlcool:8080:fyt";//zhwlcool是计算机名字
Connection conn = null;
String user="scott";
String pass="ch111111";
try {
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,user,pass);

} catch (ClassNotFoundException e) {
e.printStackTrace();

}
return conn;
}
报错信息:
java.sql.SQLException: Io 异常: Got minus one from a read call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at a.TestConn.getConn(TestConn.java:30)
at a.TestConn.getPreparedStatement(TestConn.java:48)
at a.TestConn.main(TestConn.java:57)

解决方案 »

  1.   

    各位,不好意思,是端口写错了。
    再想问一个问题,我装的时候明明改了端口的,为什么不是我改的啊,而是用默认的的1521啊我改成8090了,然后我启动tomcat居然启动不了,端口网站显示的是oracle的信息,后来我就改我把tomcat改成8081了
    但是oracle用8080又连接不上,真是奇怪
      

  2.   

    8090是谁的端口?“但是oracle用8080又连接不上”-- 你不是已经改才成8090了吗另,oracle的端口不是在安装的时候设置的。
      

  3.   

    我安装的时候有一部提示修改端口的,我就改成8090;装好oracle后,启动tomcat,输入http://localhost:8080/,居然显示的是oracle的相关信息,我以为oracle的端口为8080,所以就用8080连接,后来又试了8090,都不行。
    但是我安装的时候确实提示了输入端口啊
      

  4.   

    8090那个是oracle的httpserver的,默认是8080,所以最好开发的时候把tomcat的端口改了(我用8088),数据库的不要去动它,毕竟要是出了问题重装oracle比重装tomcat、eclipse等等要麻烦得多。
    不过开发得时候,用不着oracle得httserver,你可以在服务里面都禁用掉,只留 TNSListner那个和OrcleServiceORCL(ORCL是你的SID)两个服务就可以了。
      

  5.   

    1521是连接oracle得service端口,跟8080不是一回事。1521安装得时候好像改不了,要手工改注册表之类得好像,我没改过。