连接JDBC的两种方式?

h235h3h 2004-06-16 07:21:22
import java.sql.*;
class Employee{
public static void main (String args []) throws SQLException{

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.105)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ora920)))";
//url = "jdbc:oracle:thin:@192.168.0.105:1521:ora920";
String userName = "affair";
String password = "affair";

Connection conn =DriverManager.getConnection (url, userName, password);

// Create a Statement
Statement stmt = conn.createStatement ();

// Select the ENAME column from the EMP table
ResultSet rset = stmt.executeQuery ("select * from emp");

// Iterate through the result and print the employee names
while (rset.next ()){
System.out.print (rset.getString (1) + "\t");
System.out.print (rset.getString (2) + "\t");
System.out.print (rset.getString (3) + " \t");
System.out.print (rset.getString (4) + "\t");
System.out.println (rset.getString (5));
}

conn.close();
}
}
classpath我已经设定了oracle\ora92\jdbc\lib\classes12.jar,而且上面代码是可以正常运行的,但是如果使用其中的“url = "jdbc:oracle:thin:@192.168.0.105:1521:ora920";”
就出现以下错误:

java.sql.SQLException: I/O错误。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153092352)(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.<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(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Employee.main(Employee.java:11)
Exception in thread "main"
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
freeknightlcw 2004-06-17
  • 打赏
  • 举报
回复
看看这个:http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=123&threadID=10517&messageID=53067
h235h3h 2004-06-17
  • 打赏
  • 举报
回复
对,正是你说的这个意思,换成第二个url就不行了。

看了你的回答,我开始以为是数据库不再本地localhost的原因,就把程序中ip改为127.0.0.1后,copy到db所在的电脑上去运行,结果还是一样的报错,搞不懂为什么。

请关注
h235h3h 2004-06-17
  • 打赏
  • 举报
回复
终于发现是我的错了,抱歉

我把oracle的sid和globaldbname搞混了,前者是o920,后者是ora920

问题已经解决,但我不太知道sid和globaldbname有什么区别
tjl713 2004-06-16
  • 打赏
  • 举报
回复
不知道楼主的意思是不是这样的!
你用第一个url,程序可以正常执行,即
url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.105)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ora920)))";。

但是你把第一个url屏蔽,换成第二个url中的字符串就不行了?即:
url = "jdbc:oracle:thin:@192.168.0.105:1521:ora920";

但我按你的原代码只是改了一个地址为:127.0.0.1,数据库名为:EBOOK,然后登录名和密码为:hr/hr,查的是HR方案下的employees表。
第一个url可以正常运行,第二个url一样可以运行。
fishstudio 2004-06-16
  • 打赏
  • 举报
回复
up

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧