(哥們兒們啊能不能幫我舉個(gè)例子啊,一個(gè)用樹(shù)型結(jié)構(gòu)展現(xiàn)BBS數(shù)據(jù)庫(kù)數(shù)據(jù)的例子,包括數(shù)據(jù)庫(kù)的定義和程序的實(shí)現(xiàn)!那樣的話我感激不盡了)
我做的是出錯(cuò)了,剛開(kāi)始雖然有些小問(wèn)題但還能運(yùn)行。但最后有不行了,直到我調(diào)試得再也沒(méi)有辦法了!具體如下:
最好能給我一個(gè)BBS數(shù)據(jù)庫(kù)樹(shù)形展現(xiàn)的簡(jiǎn)單例子,包括數(shù)據(jù)庫(kù)定義,和算法的實(shí)現(xiàn)(跪下了)
定義的mysql數(shù)據(jù)庫(kù)
<%--
Document : index
Created on : 2008-9-26, 11:29:31
Author : caobaoshusheng
--%>
<%@page contentType="text/html" pageEncoding="gbk"%>
<%@ page import ="java.lang.*"%>
<%@ page import = "java.sql.*"%>
<%!
String pstring = "";
private void tree(Connection conn, int id, int floor) {
Statement stat = null;
ResultSet rs = null;
String ssql = "";
String flstring = "";
int i;
for (i = 0; i < floor; i++) {
flstring = flstring + "-----";
}
try {
stat = conn.createStatement();
ssql = "select * from BbsRecord where sid=" + id;
while (rs.next()) {
rs = stat.executeQuery(ssql);
pstring = pstring + "<tr><td>" + rs.getInt("id") + "</td><td>" + flstring + rs.getString("title") + "</td><td>" +
"" + "</td><td>" + rs.getDate("time") + "</td></tr>";
if (rs.getInt("leaf") == 0) {
tree(conn, rs.getInt("id"), floor + 1);
}
}
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
rs.close();//提示是說(shuō)這里有問(wèn)題!
stat.close();
conn.close();
} catch (SQLException e) {
System.out.println("close erro!");
}
}
}
%>
<%
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://127.0.0.1:3306/test?user=root&password=159753";
Connection conn = DriverManager.getConnection(url);
tree(conn, 1, 0);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>BBS Mysql</title>
</head>
<body>
<center>
<table>
<%= pstring%>
<%pstring = "";%>
</table>
</center>
</body>
</html>
錯(cuò)誤報(bào)告:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 36
33: System.out.println(e.getMessage());
34: } finally {
35: try {
36: rs.close();
37: stat.close();
38: conn.close();
39: } catch (SQLException e) {
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NullPointerException
org.apache.jsp.index_jsp.tree(index_jsp.java:39)
org.apache.jsp.index_jsp._jspService(index_jsp.java:100)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Apache Tomcat/6.0.16