这个异常该怎样处理?连接Access数据库出现的问题
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
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.lang.NullPointerException
org.apache.jsp.conn_005fdb_jsp._jspService(conn_005fdb_jsp.java:78)
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.
问题点数:20、回复次数:8Top
1 楼Tlake(明日要走几多路)回复于 2006-12-01 00:01:56 得分 0
JSP源代码如下:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="connDbBean" scope="page" class="student.conn"/>
<html>
<head>
<title>test db connection</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<table width="60%" border="1">
<tr bgcolor="#CCCCFF">
<td width="50%">
<div align="center"><font color="#FF0033"><b>姓名</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>性别</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>分数</b></font></div>
</td>
</tr>
<%
ResultSet RS_result = connDbBean.executeQuery("select * from table1");
String studentName="";
String studentSex="";
int studentScore=0;
while(RS_result.next())
{
studentName = RS_result.getString("name");
studentSex = RS_result.getString("sex");
studentScore = RS_result.getInt("score");
%>
<tr>
<td width="50%" bgcolor="#FFFFFF">
<div align="center"><%=studentName%></div>
</td>
<td width="25%">
<div align="center"><%=studentSex%></div>
</td>
<td width="25%">
<div align="center"><%=studentScore%></div>
</td>
</tr>
<%
}
RS_result.close();
%>
</table>
</body>
</html>
Top
2 楼Tlake(明日要走几多路)回复于 2006-12-01 00:02:57 得分 0
用到的Java Bean源码如下:
package student;
import java.sql.*;
public class conn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:student";
Connection connect = null;
ResultSet rs = null;
public conn() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
try {
connect = DriverManager.getConnection(sConnStr);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
}
Top
3 楼guoyoulei520()回复于 2006-12-01 00:24:48 得分 0
操作集ResultSet不要放在页面中,这样页面的负担会有较大的负担,你把它放在java bean中,把检索得到的数据放在arrlylist当中,然后在页面中调用这个bean, 并得到arrlylist,就可以了!
Top
4 楼Tlake(明日要走几多路)回复于 2006-12-01 08:57:40 得分 0
谢楼上, 只是我刚接触JSP, 不知怎么改先,驱者请哪位帮把代码修改一下,谢谢!Top
5 楼Tlake(明日要走几多路)回复于 2006-12-01 12:17:57 得分 0
这是一本书中的例子,难道例子写错?Top
6 楼fzlotuscn(无为一本)回复于 2006-12-01 13:36:01 得分 0
用到的Java Bean源码如下:
package student;
import java.sql.*;
public class conn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:student";
Connection connect = null;
ResultSet rs = null;
不用ODBC连接 改成直接连接你先试试行不行
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/jsp/oa/database/oa_database.mdb";
按错误提示有可能不是你的代码问题
package oa.db;
/**
* <p>数据库连接专用包 </p>
* <p>Copyright: wxy Copyright (c) 2004</p>
* <p>Company:juanjuan book shop online </p>
* @by :wxy
* @version 1.0
*/
import java.sql.*;
public class opendb {
public Connection conn;
public Statement stmt;
public ResultSet rs=null;
public String sqlStr="";
public opendb() {
this.connect();
}
public boolean connect(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/jsp/oa/database/oa_database.mdb";
conn=DriverManager.getConnection(url,"root","8888");
stmt = conn.createStatement ();
}catch(Exception ee){
System.out.println("connect db error:"+ee.getMessage());
return false;
}
return true;
}
//用于执行查询数据库的操作
//返回查询结果集
public ResultSet execQuery(String sql) {
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/jsp/oa/database/oa_database.mdb";
ResultSet rs=null;
try {
conn = DriverManager.getConnection(url,"root","8888");
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
//stmt.close();
} catch(SQLException ex) {
System.err.println("opendb.execQuery(): " + ex.getMessage());
}
return rs;
}Top
7 楼Tlake(明日要走几多路)回复于 2006-12-01 23:49:33 得分 0
但是还是想用ODBC连, 难道就连不了吗? 应该怎么改?Top
8 楼TGWall(Begin-End)回复于 2006-12-03 10:40:06 得分 20
String sConnStr = "jdbc:odbc:student";
改成试试:
String sConnStr = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=目录/student.mdb";Top




