大家帮忙看一下,java.lang.NullPointerException问题

wanglx 2005-05-31 08:56:52
我是初学者,在网上下了个"好易多网上书店"的源码,运行是出现一下问题,我看了好长时间也没弄懂问题出在哪? 请各位大侠帮忙看看!
出现如下错误提示:
Error 500--Internal Server Error
java.lang.NullPointerException
at org.pan.web.bookclasslist.excute(bookclasslist.java:38)
at jsp_servlet._bookstore.__index._jspService(__index.java:154)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

jsp调用如下:
<jsp:useBean id="classlist" scope="page" class="org.pan.web.bookclasslist" />
<% if (classlist.excute()){
for (int i=0;i<classlist.getClasslist().size();i++){
bookclass bc = (bookclass) classlist.getClasslist().elementAt(i); %>

bookclasslist的源码如下:
package org.pan.web;

import java.sql.*;
import java.util.Vector;
import org.pan.util.*;
import org.pan.web.book.bookclass;

public class bookclasslist extends DataBase {
private Vector classlist;
public bookclasslist() throws Exception{
super();
}

public Vector getClasslist() {
return classlist;
}

public String getSql() {
String sqlStr = "select id,classname from my_Bookclass order by id";
return sqlStr;
}

public boolean excute() throws Exception {
int id = 0;
String classname = "";
int rscount = 0;
try {

rs = stmt.executeQuery(getSql());
rscount = stmt.getMaxRows();
classlist = new Vector(rscount+1);
classlist.clear();
while (rs.next()){
id = rs.getInt("id");
classname = rs.getString("classname");
bookclass bc = new bookclass(id,classname);
classlist.addElement(bc);



}
rs.close();
return true;
}
catch (SQLException sqle){
System.out.println(sqle);
return false;
}
}
};


DataBase代码如下:
package org.pan.web;
import java.sql.*;
import org.pan.util.*;

public class DataBase {
protected Connection conn = null; //Connection接口
protected Statement stmt = null; //Statement接口
protected ResultSet rs = null; //记录结果集
protected PreparedStatement prepstmt = null; //PreparedStatement接口
protected String sqlStr; //sql String
protected boolean isConnect=true; //与数据库连接标识

public DataBase() {
try
{
sqlStr = "";
DBConnectionManager dcm = new DBConnectionManager();
conn = dcm.getConnection();
stmt = conn.createStatement();
}
catch (Exception e)
{
System.out.println(e);
isConnect=false;
}

}

public Statement getStatement() {
return stmt;
}

public Connection getConnection() {
return conn;
}

public PreparedStatement getPreparedStatement() {
return prepstmt;
}

public ResultSet getResultSet() {
return rs;
}


public String getSql() {
return sqlStr;
}

public boolean execute() throws Exception {
return false;
}

public boolean insert() throws Exception {
return false;
}

public boolean update() throws Exception {
return false;
}

public boolean delete() throws Exception {
return false;
}
public boolean query() throws Exception {
return false;
}

public void close() throws SQLException {
if ( stmt != null )
{
stmt.close();
stmt = null;
}
conn.close();
conn = null;
}

};

DBConnectionManager 类的代码:
package org.pan.util;
import java.sql.*;
public class DBConnectionManager {
private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; //"oracle.jdbc.driver.OracleDriver";
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookstore"; //"jdbc:oracle:thin:@127.0.0.1:1521:oracle";
private String user = "sa";
private String password = "sa";

public void setDriverName(String newDriverName) {
driverName = newDriverName;
}
public String getDriverName() {
return driverName;
}

public void setUrl(String newUrl) {
url = newUrl;
}
public String getUrl() {
return url;
}
public void setUser(String newUser) {
user = newUser;
}
public String getUser() {
return user;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public String getPassword() {
return password;
}

public Connection getConnection() {
try {
Class.forName(driverName);
return DriverManager.getConnection(url, user, password);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}

public static void main(String[] args) {
// DBConnectionManager DBConnectionManager1 = new DBConnectionManager();


try{

DBConnectionManager dcm = new DBConnectionManager();
Connection conn = dcm.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from my_BookAdminuser");


// stmt = conn.createStatement();

while(rs.next()){
System.out.print("名称: "+rs.getString(1));
System.out.print("\tpassword: "+rs.getString(2));
System.out.println();
}
//stmt.executeUpdate( "insert into my.txt values ('Ruby',27,'网络部')"); //*/
}catch(Exception e){
e.printStackTrace();
}
}
}

...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
minisun2000 2005-05-31
  • 打赏
  • 举报
回复
全是这种N长的源代码,看着就头疼,一个空指针吗,就一步步找就OK了
积木 2005-05-31
  • 打赏
  • 举报
回复
……这种东西,就得自己找step over ……
一点别的招都没有的,
wanglx 2005-05-31
  • 打赏
  • 举报
回复
各位大侠帮帮忙啊,小弟我实在是找不出来了!谢先!
wanglx 2005-05-31
  • 打赏
  • 举报
回复
该找的我都找了,可是还是没找到,我认为stmt不是null
ipv 2005-05-31
  • 打赏
  • 举报
回复
stmt.executeQuery(getSql());
stmt是null吧
你看看第38行
一步步找下去
空指针错误最好找了
wanglx 2005-05-31
  • 打赏
  • 举报
回复
up

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧