📄 622907.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<TopicId>622907</TopicId>
<TopicName>jdbc访问oracle问题</TopicName>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>15</ReplyNum>
<PostDateTime>2002-4-4 17:06:24</PostDateTime>
<Point>60</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>在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)
......
</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>zz</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>95</credit>
<ReplyID>4113600</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>107094</PostUserId>
<PostUserName>zhu_liping</PostUserName>
<Point>0</Point>
<Content>classes111.zip换成classes12.zip吧,ORACLE网站有去下一个吧!</Content>
<PostDateTime>2002-4-4 18:33:38</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4120705</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<Point>0</Point>
<Content>我下载了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)))) 
快救命呀</Content>
<PostDateTime>2002-4-5 10:40:58</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4120791</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<Point>0</Point>
<Content>我下载了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))))</Content>
<PostDateTime>2002-4-5 10:45:44</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>zz</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>95</credit>
<ReplyID>4122058</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>107094</PostUserId>
<PostUserName>zhu_liping</PostUserName>
<Point>10</Point>
<Content>String url="jdbc:oracle:thin:@192.168.12.54:1521:oradb";
con=DriverManager.getConnection(url,"user","passwd");</Content>
<PostDateTime>2002-4-5 11:43:34</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>liangxf</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4124711</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>57535</PostUserId>
<PostUserName>liangxf0022</PostUserName>
<Point>0</Point>
<Content>同意zhu_liping(zz),obi8必须安装oracle的客户端,而且是8.1.5以上版本的。</Content>
<PostDateTime>2002-4-5 13:54:13</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>石冰</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>100</credit>
<ReplyID>4125572</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>138921</PostUserId>
<PostUserName>icystone</PostUserName>
<Point>30</Point>
<Content>(ERR=12505)無效的SID.注意1251後面加的是SID爾不是數據庫的名字
</Content>
<PostDateTime>2002-4-5 14:39:51</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>别问我是谁</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4137100</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>198516</PostUserId>
<PostUserName>jinfanzi</PostUserName>
<Point>0</Point>
<Content>你需要将classes111.zip或classes12.zip解压后,将其中的oracle文件夹copy到你的web服务器下的相应路径下(如/weblogic/classes/),并在classpath中注册,如:d:/weblogic/classes;</Content>
<PostDateTime>2002-4-6 13:58:55</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4155742</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<Point>0</Point>
<Content>用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
都可以呀
</Content>
<PostDateTime>2002-4-8 9:56:26</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>笨笨</PostUserNickName>
<rank>两星(中级)</rank>
<ranknum>star2</ranknum>
<credit>120</credit>
<ReplyID>4157968</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>115764</PostUserId>
<PostUserName>yanchang</PostUserName>
<Point>0</Point>
<Content>是的classes111.zip只支持jdbc1.0
jdbc:oracle:thin:@192.168.12.54:1521:oradb
是规定的URL格式啊</Content>
<PostDateTime>2002-4-8 12:48:56</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>飞鸽</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>97</credit>
<ReplyID>4159411</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>74621</PostUserId>
<PostUserName>fgcsh</PostUserName>
<Point>0</Point>
<Content>classes12.zip支持jdbc2.0
那我为什么不能使用游标?</Content>
<PostDateTime>2002-4-8 14:00:12</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>微电--有狼的气质 没狼的勇气 真郁闷</PostUserNickName>
<rank>一星(中级)</rank>
<ranknum>star1</ranknum>
<credit>98</credit>
<ReplyID>4159850</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>109064</PostUserId>
<PostUserName>xmvigour</PostUserName>
<Point>0</Point>
<Content>classes12.zip是oci格式的</Content>
<PostDateTime>2002-4-8 14:22:36</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4161224</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<Point>0</Point>
<Content>回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服务的地址。希望大家积极发言
</Content>
<PostDateTime>2002-4-8 15:30:23</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>微电--有狼的气质 没狼的勇气 真郁闷</PostUserNickName>
<rank>一星(中级)</rank>
<ranknum>star1</ranknum>
<credit>98</credit>
<ReplyID>4162217</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>109064</PostUserId>
<PostUserName>xmvigour</PostUserName>
<Point>20</Point>
<Content>jdbc:oracle:thin:@192.168.12.54:1521:oradb
方式将连接绑定到固定的IP地址或主机名上,如果发生IP地址或主机名变更的情况会增加系统移植的复杂性。
用一db.properties来存储ip,port,sid,如果系统变化,改动该db.properties文件即可!</Content>
<PostDateTime>2002-4-8 16:20:49</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4190289</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<Point>0</Point>
<Content>xmvigour(微电) 能否给个例子</Content>
<PostDateTime>2002-4-10 13:12:59</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>pennate</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4287023</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>11304</PostUserId>
<PostUserName>pennate</PostUserName>
<Point>0</Point>
<Content>好象没人来了。散分。。。。
论功行赏,决不失言</Content>
<PostDateTime>2002-4-16 15:33:21</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>tomato</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>5124523</ReplyID>
<TopicID>622907</TopicID>
<PostUserId>183957</PostUserId>
<PostUserName>tr100</PostUserName>
<Point>0</Point>
<Content>为什么我这样设也不对呢
环境: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.
</Content>
<PostDateTime>2002-6-8 13:33:09</PostDateTime>
</Reply>
</Replys>
</Topic>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -