jdbc访问oracle问题
在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)
......