JAVA连接ORACLE怎么就这么难?!!!(230分)

  • 主题发起人 主题发起人 newyu_1127
  • 开始时间 开始时间
N

newyu_1127

Unregistered / Unconfirmed
GUEST, unregistred user!
各位师兄:
JSP的运行环境为JB9,ORACLE9I客户端,连接ORACLE的过程如下:
我把D:/Oracle/iSuites/jdbc/lib/classes12.jar(客户端直接有classes12.jar和classes12.ZIP两个文件.我第一次就直接选择了前者1.04M)COPY到
D:/Program Files/Apache Group/Tomcat 4.1/common/lib下.
然后打开Jbuilder,选择Tools-->Configure Libraries,
然后在左边的列表框下选择New,填入:Name:oracle,Location:User Home,然后点击Add,
加入目录D:/Program Files/Apache Group/Tomcat 4.1/common/lib/classes12.jar,确定
三、Project-->Prject Properties-->Paths-->Required Libraries-->Add
加入刚才添加的User Home/oracle 确定
四、Tools-->Enterprise Setup-->Database Drivers-->Add,加入User Home/oracle,添加之后在列表框中显示的是oracle.config,
确定,重新启动JBuilder
最后是写一个程序进行测试:
package ora;
import java.sql.*;
import java.util.*;
public class Octest {
public static void main(String[] acgs) {
String eor;
Connection conn;
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.64:1521:star","linyu", "101127");
//192.168.0.64是服务器的IP地址,star是数据库服务名,linyu用户名,101127密码
//注:这连接字符串,我从PL/SQL里登录一点问题没有.
System.out.println("连接ORACLE数据库成功");
}catch(Exception e){
eor="连接失败,请检查配置!";
System.out.println(eor);
System.out.println(e) ;
}
}
}
可是运行完却出现:
连接失败,请检查配置!
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
怎么会这样呢?于是我D:/Oracle/iSuites/jdbc/lib/classes12.ZIP(1.05M),COPY到
D:/Program Files/Apache Group/Tomcat 4.1/common/lib想解压,可是解不了,
就把其后缀名改为JAR,然后按上面的再做一遍,这下出错的错误是:
连接失败,请检查配置!
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
我突然想到,可能classes12.ZIP要用服务器版的,就到服务器上(即192.168.0.64)
打开D:/Oracle/iSuites/jdbc/lib结果发现这个目录下只有classes12.ZIP(1.84M)文件没有classes12.JAR文件,而且可以解压.
于是我把应该文件COPY到
D:/Program Files/Apache Group/Tomcat 4.1/common/lib并把其后缀名改为JAR,然后按上面的再做一遍,最终结果是:
连接失败,请检查配置!
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
嗨,到底哪出错了.真晕倒了.请各位师兄赐教,谢谢了先.
我在自己的机子(客户端)这边用同样的
连接串在PL/SQL登录.为什么可以呢?
还有我的DELPHI6上也用ADO试了一下,连接串为:
Provider=MSDAORA.1;Password=101127;User ID=linyu;Data Source=star;Persist Security Info=True也一样测试成功.应该说明不是网络的原因吧.
会是jdbc太旧了吗?我到ORACLE网站:http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html上下的
ojdbc14.jar怎么只有3.8K?不对啊.谁有ojdbc14.jar能发一份给我吗?
hateqing@163.com谢谢了先,如果有,我将单独再加分给您。
 
to
The Network Adapter could not establish the connection
我也遇到过,可以把驱动加到jdk里试试
jbuilder下
Tools-->Configure jdks--->add 把jdbc驱动加上。。
 
师兄能否说的清楚一些,只要在jbuilder下
Tools-->Configure jdks--->add 把jdbc驱动加上。。
就行了吗?
我加了,重启JB9后运行,可问题依旧啊。
 
---------------------------------------------------------
然后在左边的列表框下选择New,填入:Name:oracle,Location:<jbuilder>,然后点击Add,
----------------------------------------------------------
加入目录D:/Program Files/Apache Group/Tomcat 4.1/common/lib/classes12.jar,确定
三、Project-->Prject Properties-->Paths-->Required Libraries-->Add
----------------------------------------
加入刚才添加的jbuilder/oracle 确定
------------------------------------------
在win上就用classes12.ZIP 在linux上用classes12.jar
 
师兄们,问题依旧啊。
("jdbc:oracle:thin:@192.168.0.64:1521:star","linyu", "101127");
//192.168.0.64是服务器的IP地址,star是数据库服务名,linyu用户名,101127密码
//注:这连接字符串,我从PL/SQL里登录一点问题没有.
还有我的DELPHI6上也用ADO试了一下,连接串为:
Provider=MSDAORA.1;Password=101127;User ID=linyu;Data Source=star;Persist Security Info=True也一样测试成功.这样是否可以说明跟网络没有问题了,可为什么
搞来搞去错误都是:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection!!!!!
 
star是不是你本地的连接串??
而不是oracle服务器上的服务名
("jdbc:oracle:thin:@192.168.0.64:1521:star","linyu", "101127");
比如:
star =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 137.111.160.95)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora817)
)
)
你要用ora817 千万不要用star 你明白吗??如果你用oci那就用star
jdbc:oracle:oci8:@star
 
Oracle客户端配置有没有错误呀
 
师兄,我就是怕会有这样的问题,所以我客户端与服务器的服务名都是star
 
先直接用客户端连接数据库试试
 
Oracle客户端配置有没有错误呀?
那如何是这个问题的话,如何解释//注:这连接字符串,我从PL/SQL里登录一点问题没有.
还有我的DELPHI6上也用ADO试了一下,连接串为:
Provider=MSDAORA.1;Password=101127;User ID=linyu;Data Source=star;Persist Security Info=True也一样测试成功
 
thin的连接和客户端无关
用 ("jdbc:oracle:oci8:@star","linyu", "101127");看看
 
java.sql.SQLException: Io 异常: The Network Adapter could not testablish he connection!!!!!
这个错误就是没有网络协议适配器连接错误
肯定是你的服务名不对,你把你的本地连接串最好改一下 最好和服务名不一样
thin连接和你的客户端无关 和delphi的连接方式不同
 
首先,已经报告了network错误,说明oracle驱动已经找到,也就是说,
你第一次已经正确的配置了oracle的jdbc驱动,你看到的错误正是oracle
的jdbc驱动返回的错误。
其次,楼上7syw朋友的分析是道理的,你可能是将oracle的本地服务名
和服务名弄混了。在使用oracle的thin方式连接时,连接串中指定的应该
是oracle服务器上的数据库名或者是全局数据库名,也就是sid。
 
问题的解决是这样的:
我先把本机的数据库服务名删除了,新建了一个跟服务器数据库服务名不一样的名称,
如果用原先的写法"jdbc:oracle:thin:@192.168.0.64:1521:star"仍然出现同样的错误.
然后我按照这样的写法,String url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.64)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=star)(SERVER=DEDICATED)))";
这样做,成功了。
天啦,怎么会这样呢?为什么要这么麻烦,难道客户端连接就会这样吗?那位能
给出个合理的解释,重分相送。当然前面的几位师兄也都有分相谢。
 
嘿嘿 有时候就是这么怪 但我觉的不用写那么长把
 
多人接受答案了。
 
后退
顶部