jdbc访问oracle问题

pennate 2002-04-04 05:06:23
加精
在jsp中利用jdbc访问oracle 数据库时,出现下列问题,诚征解决办法:

环境:tomcat3.2+oracle jdbc+oracle8.1.5
CLASS_PATH设置:F:\Oracle\Ora81\jdbc\lib\classes111.zip;F:\Oracle\Ora81\jdbc\lib\nls_chaset11.zip
以上设置参照了F:\Oracle\Ora81\jdbc\readme.txt

使用tnsping和sqlplus访问均正确。

输出信息:
oracle8i.jdbc测试!
SQLException:SO Exception was generated SQLSite:null VendorError:0

源文件:
<%@ page contentType="text/html;charset=gb2312" %>
<%@page import="java.sql.*"%>


<%
out.println("oracle8i.jdbc测试!<br>");
try
{
//Class.forName("oracle.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
//DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ());


}
catch(Exception e)
{
out.println("unable to load Driver.");
}

String url="jdbc:oracle:thin:@oradb";
try
{
Connection conn=DriverManager.getConnection(url,"suyk","pennate");
conn.setAutoCommit(false);

//Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select id,name from class");

out.println("<table border=1>");
while(rs.next())
{
out.println("<tr><td>");
out.println(rs.getString("id"));
out.println("</td>");
out.println("<td>");
out.print(rs.getString("name"));
out.println("</td></tr>");
}
out.println("</table>");

rs.close();
stmt.close();
conn.close();
}
catch (SQLException e)
{ out.println("SQLException:"+e.getMessage());
out.println("SQLSite:"+e.getSQLState());
out.println("VendorError:"+e.getErrorCode());
}

%>

如改为url="jdbc:oracle:oci8:@oradb";
则错误如下:
java.lang.IllegalStateException: Response has already been committed
at org.apache.tomcat.core.HttpServletResponseFacade.sendError(HttpServletResponseFacade.java:157)
at org.apache.jasper.runtime.JspServlet.unknownException(JspServlet.java:299)
......
...全文
423 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tr100 2002-06-08
为什么我这样设也不对呢
环境:tomcat3.2+oracle jdbc+oracle8.1.5
CLASS_PATH设置:F:\Oracle\Ora81\jdbc\lib\classes111.zip;F:\Oracle\Ora81\jdbc\lib\nls_chaset11.zip
还是
Package oracle.jdbc.driver not found in import.
回复
pennate 2002-04-16
好象没人来了。散分。。。。
论功行赏,决不失言
回复
pennate 2002-04-10
xmvigour(微电) 能否给个例子
回复
yanchang 2002-04-08
是的classes111.zip只支持jdbc1.0

jdbc:oracle:thin:@192.168.12.54:1521:oradb

是规定的URL格式啊
回复
pennate 2002-04-08
用jdbc:oracle:thin:@192.168.12.54:1521:oradb方式可以解决此问题
原来是我记错了SID
用classes111.zip和classes12.zip都可以
好象classes111.zip只支持jdbc1.0
classes12.zip支持jdbc2.0

但是最初用jdbc:oracle:thin@oradb为何不行呢
tnsping oradb
sqlplus oradb
都可以呀
回复
xmvigour 2002-04-08
jdbc:oracle:thin:@192.168.12.54:1521:oradb
方式将连接绑定到固定的IP地址或主机名上,如果发生IP地址或主机名变更的情况会增加系统移植的复杂性。

用一db.properties来存储ip,port,sid,如果系统变化,改动该db.properties文件即可!
回复
pennate 2002-04-08
回yanchang(笨笨)
jdbc:oracle:thin:@192.168.12.54:1521:oradb
方式将连接绑定到固定的IP地址或主机名上,如果发生IP地址或主机名变更的情况会增加系统移植的复杂性。在这方面oracle提供了很好的解决办法:
别名服务:
1在web服务器做oracle服务的别名。ip,port,sid包含在web服务器的[ORACLE_HOME]的TnsNames.ora文件中
2。命名服务:在命名服务器上将服务映射为url如aa.test.com
当发生IP地址或主机名变更时,调整服务别名或命名服务设置即可。是一种比较灵活的解决方案。
不知Jsp环境下怎么却实现不了。
jdbc:oracle:thin:@192.168.12.54:1521:oradb
是一种最原始的处理办法,暴露了DB服务的地址。希望大家积极发言

回复
xmvigour 2002-04-08
classes12.zip是oci格式的
回复
fgcsh 2002-04-08
classes12.zip支持jdbc2.0
那我为什么不能使用游标?
回复
jinfanzi 2002-04-06
你需要将classes111.zip或classes12.zip解压后,将其中的oracle文件夹copy到你的web服务器下的相应路径下(如/weblogic/classes/),并在classpath中注册,如:d:/weblogic/classes;
回复
zhu_liping 2002-04-05
String url="jdbc:oracle:thin:@192.168.12.54:1521:oradb";
con=DriverManager.getConnection(url,"user","passwd");
回复
pennate 2002-04-05
我下载了classes12.zip错误依旧
补充一下:
我的java环境是jdk1.3
当用jdbc:oracle:thin:@192.168.12.54:1521:oradb方式连接时报错如下
SQLException:Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135286784)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
回复
pennate 2002-04-05
我下载了classes12zip 错误依据
补充一下
用url="jdbc:oracle:thin:@192.168.12.54:1521:oradb" 方式连接时错误如下
SQLException:Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135286784)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
快救命呀
回复
icystone 2002-04-05
(ERR=12505)無效的SID.注意1251後面加的是SID爾不是數據庫的名字

回复
liangxf0022 2002-04-05
同意zhu_liping(zz),obi8必须安装oracle的客户端,而且是8.1.5以上版本的。
回复
zhu_liping 2002-04-04
classes111.zip换成classes12.zip吧,ORACLE网站有去下一个吧!
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告