Jsp空指针问题解决以后,读取不到数据库的内容? 30
我是用javaBean实现访问Access数据库。conn_db.jsp文件如下:<%@pagelanguage="java"%><%@pageimport="java....
我是用javaBean实现访问Access数据库。
conn_db.jsp文件如下:
<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<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=connDBBean.executeQuery("select* from Table");
String studentName="";
String studentSex="";
int studentScore=0;
try{
while(rs.next()){
studentName=rs.getString("name");
studentSex=rs.getString("sex");
studentScore=rs.getInt("score");
%>
<tr >
<td width="50%">
<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.close();
}catch(Exception ex){
System.err.println(ex.getMessage());
}
%>
</table>
</body>
</html>
conn.java文件如下:
package student;
import java.sql.*;
public class conn{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbd:odbc:students";
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;
}
}
可是就是不能够读取数据库的数据,但是可以输出:
姓名 性别 分数
帮忙看看问题出现在那里????
RE:
不报任何错误了, 就是访问不到Access数据库的数据,知只是输出了各个字段:
姓名 性别 分数
可是读不到记录??分开“*”也不好使,好像不用分开的。
我测试了,如果我把students.mdb删除了,再运行它照样不出错,也就是说与数据库无关了,问题应该出在:
conn_db.jsp中
那个try...catch...好像作用范围大了吧,但是如果没有它就会出错:空指针错误,那么应该如何改正这里呢???
补充:我测试了,返回的果然是空指针,但是为什么链接不上数据库呢,我用系统DSN配置的,没有错误的啊,会不会是配置文件web.xml的问题呢?
我看了,没有问题的。 展开
conn_db.jsp文件如下:
<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<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=connDBBean.executeQuery("select* from Table");
String studentName="";
String studentSex="";
int studentScore=0;
try{
while(rs.next()){
studentName=rs.getString("name");
studentSex=rs.getString("sex");
studentScore=rs.getInt("score");
%>
<tr >
<td width="50%">
<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.close();
}catch(Exception ex){
System.err.println(ex.getMessage());
}
%>
</table>
</body>
</html>
conn.java文件如下:
package student;
import java.sql.*;
public class conn{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbd:odbc:students";
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;
}
}
可是就是不能够读取数据库的数据,但是可以输出:
姓名 性别 分数
帮忙看看问题出现在那里????
RE:
不报任何错误了, 就是访问不到Access数据库的数据,知只是输出了各个字段:
姓名 性别 分数
可是读不到记录??分开“*”也不好使,好像不用分开的。
我测试了,如果我把students.mdb删除了,再运行它照样不出错,也就是说与数据库无关了,问题应该出在:
conn_db.jsp中
那个try...catch...好像作用范围大了吧,但是如果没有它就会出错:空指针错误,那么应该如何改正这里呢???
补充:我测试了,返回的果然是空指针,但是为什么链接不上数据库呢,我用系统DSN配置的,没有错误的啊,会不会是配置文件web.xml的问题呢?
我看了,没有问题的。 展开
展开全部
1,有没有装MYECLIPSE,有的话用里面的DB brower试一下数据库连接是否成功.
2,在CONN.JAVA里找个地方打断点,看看
ResultSet rs=connDBBean.executeQuery("select * from Table");
这句有没有把这段字符串传到CONN类里面.
楼主说把students.mdb删除了,再运行它照样不出错,有可能是数据库连接不成功.如果连接成功了你再把数据库删除应该要报错才是啊.
2,在CONN.JAVA里找个地方打断点,看看
ResultSet rs=connDBBean.executeQuery("select * from Table");
这句有没有把这段字符串传到CONN类里面.
楼主说把students.mdb删除了,再运行它照样不出错,有可能是数据库连接不成功.如果连接成功了你再把数据库删除应该要报错才是啊.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空指针异常的话,只有可能是rs等于null了。
估计是你的connDBBean有问题
估计是你的connDBBean有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select* from Table-- select * from Table “*”分开
控制台还报什么错
控制台还报什么错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询