<%@ page pageEncoding="gb18030" %>
<%@ page import="java.sql.*, com.bjsxt.bbs.*, java.util.*"%><%!
private void tree(Set<Article> articles, Connection conn, int id, int grade) {
String sql = "select * from article where pid = " + id;
System.out.println(sql);
Statement stmt = DB.createStmt(conn);
System.out.println(conn);
System.out.println(stmt);
ResultSet rs = DB.executeQuery(stmt, sql); System.out.println(rs);
try {
while(rs.next()) {
Article a = new Article();
a.setId(rs.getInt("id"));
a.setPid(rs.getInt("pid"));
a.setRootid(rs.getInt("rootid"));
a.setGrade(grade);
a.setTitle(rs.getString("title"));
a.setLeaf(rs.getInt("isleaf") == 0 ? true : false);
a.setPdate(rs.getTimestamp("pdate"));
articles.add(a);
if (!a.isLeaf()) {
tree(articles, conn, a.getId(), grade+1);
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(stmt);
DB.close(rs);
}
}
 %>
 
 <%
 Set<Article> articles = new HashSet<Article>();
 Connection conn = DB.getConn();
 tree(articles, conn, 0, 0);  
 DB.close(conn);
  %>这是我的写的JSP的部分代码, 这程序总是在while(rs.next()) 行抛nullpointerException 错;
这是为什么啊?
DB是为连接数据库而封装的一个类, Article 也是封装的一个类;
Article.java  代码如下:
package com.bjsxt.bbs;
import java.util.*;public class Article {

private int id;
private int pid;
private int rootid;
private int grade;
private String title;
private String cont;
private Date pdate;
private boolean isLeaf;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getRootid() {
return rootid;
}
public void setRootid(int rootid) {
this.rootid = rootid;
}

public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCont() {
return cont;
}
public void setCont(String cont) {
this.cont = cont;
}
public Date getPdate() {
return pdate;
}
public void setPdate(Date pdate) {
this.pdate = pdate;
}
public boolean isLeaf() {
return isLeaf;
}
public void setLeaf(boolean isLeaf) {
this.isLeaf = isLeaf;
}
}