使用JDBC串連資料庫出現下面異常: java.sql.SQLException: Io 異常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) 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.(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 xx.TestCon.main(TestCon.java:17)
這說明你使用的URL中的SID_NAME出現錯誤:jdbc:oracle:thin:@192.168.1.2:1521:SID_NAME ,請檢查SID_NAME,
由於我的資料庫是:OracleServiceDHY,可以看出當時安裝設定的SID為DHY,好了,把代碼更改如下:
try{
//step1.add drives
Class.forName("oracle.jdbc.driver.OracleDriver");
//step2.get connection
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:DHY","scott","tiger");
//step3.creat statement
Statement sm=conn.createStatement();
//step4.result set
ResultSet rs=sm.executeQuery("select * from emp");
while(rs.next()){//has next
System.out.println("使用者名稱:"+rs.getString(2));
}
}
catch(Exception e){
e.printStackTrace();
}
測試回合,OK!