访问access数据库,为什么会出现如下错误?
我用的是eclipse2.1.3+lomboz2.1.3+tomcat5.0.30,练习写了一个访问access数据库的东西,为什么会出现如下错误?相同的bean,相同的jsp页,用jb却可以运行正常!! 到底是为什么?
tomcat5.0.30出错
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: No data found
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.index_jsp._jspService(index_jsp.java:110)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: No data found
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7139)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:413)
org.apache.jsp.index_jsp._jspService(index_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.
--------------------------------------------------------------------------------
Apache Tomcat/5.0.30
DbOperation bean的代码:
/*
* Created on 2005-3-5
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package h;
import java.sql.*;
//import java.io.*;
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class DbOperator {
String error;//错误信息
Connection con;
public DbOperator() {}
//连接数据库
public void connect()throws ClassNotFoundException,SQLException,Exception
{
try
{
//装载jdbcod驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//创建一个连接至数据源的连接
con = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=D:/guitay/intopjsp/h/exam.mdb","","");
}
catch(ClassNotFoundException cnfe)
{
error = "ClassNotFoundException:不能locate数据库驱动";
throw new ClassNotFoundException(error);
}
catch(SQLException cnfe)
{
error = "SQLException:不能连接到数据库!!";
throw new SQLException(error);
}
catch(Exception e)
{
error = "Exception:一个不知名的错误!!";
throw new Exception(error);
}
} //end of connect
//关闭数据库
public void disConnect()throws SQLException
{
try
{
if(con != null)
{
//关闭数据库
con.close();
}
}
catch(SQLException sqle)
{
error="SQLException:无法关闭数据库连接!!";
throw new SQLException(error);
}
}
//返回结果集
public ResultSet viewResultSet(String queryString)throws SQLException,Exception
{
ResultSet rs = null;
try
{
Statement stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
}
catch(SQLException sqle)
{
error = "SQLException:不能execute查询!!";
throw new SQLException(error);
}
catch(Exception e)
{
error = "Exception:不知名的错误!!";
throw new Exception(error);
}
return rs;
}//end of viewResultSet
//增加用户
public void addUser(String name ,String passWord)throws SQLException,Exception
{
if(con != null)
{
try
{
PreparedStatement updateUsers;
String s = new String ("insert into user values(?,?)");
updateUsers = con.prepareStatement(s);
updateUsers.setString(1,name);
updateUsers.setString(2,passWord);
updateUsers.execute();
}
catch(SQLException sqle)
{
error = "SQLException:更新错误!!!";
throw new SQLException (error);
}
}
else
{
error = "Exception:连接到数据库出错!!";
throw new Exception(error);
}
}
}
jsp页代码:
<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language = "java"import="java.sql.*"%>
<jsp:useBean id="dd" scope="session" class="h.DbOperator"/>
<html>
<head>
<title>Welcome---显示记录</title>
</head>
<body>
<form action="delete.jsp" method="post">
<table border="1">
<tr>
<td bgcolor="#99FFFF">选择</td>
<td>姓名</td>
<td bgcolor="#99FFFF">密码</td>
</tr>
<%
dd.connect();
ResultSet rs=dd.viewResultSet("select *from user");
while(rs.next())
{
String name = rs.getString("name");
%>
<tr>
<td bgcolor="#99FFFF">
<input type="checkbox" name="primarykey" value="<%=rs.getString("name")%>"/></td>
<td><%=rs.getString("name")%></td>
<td bgcolor="#99FFFF"><%=rs.getString("password")%></td>
</tr> <%}%>
<%
rs.close();
dd.disConnect();
%>
</table>
<input type="submit" name="submit" value="删除记录!"/>
<a href="input.jsp">添加记录!</a>
</form>
</body>
</html>
结决问题马上结帖!!