日期:2014-05-17  浏览次数:20643 次

一简单的树状bbs制作问题
我定义了一个bbs.sql文件运行,和一个jsp文件,结果和我做的不一样,代码如下,求调试。

drop table article;

create table article
(
id number primary key ,
title varchar2(4000),
cont varchar2(4000),
pid number,
pdate date, 
isleaf number(1), --0代表非叶子节点,1代表叶子节点
alevel number(2)
)

CREATE SEQUENCE article_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
MAXVALUE 1.0E28 -- 设置最大值
MINVALUE 1 
NOCYCLE  -- 一直累加,不循环
CACHE 40 -- 不建缓冲区
NOORDER;

CREATE TRIGGER TRG_ADD_TUSER  BEFORE
INSERT ON article FOR EACH ROW WHEN (new.id is null)
begin
select article_sequence.nextval into: new.id from dual;
end;

insert into article values (article_sequence.nextval, '蚂蚁大战大象', '蚂蚁大战大象',0,sysdate, 0,  0);
insert into article values (article_sequence.nextval, '大象被打趴下了', '大象被打趴下了',1, sysdate,0,1);
insert into article values (article_sequence.nextval, '蚂蚁也不好过','蚂蚁也不好过', 2, sysdate, 1,  2);
insert into article values (article_sequence.nextval, '瞎说', '瞎说',2,sysdate, 0,  2);
insert into article values (article_sequence.nextval, '没有瞎说', '没有瞎说',4,sysdate, 1,  3);
insert into article values (article_sequence.nextval, '怎么可能', '怎么可能',1,sysdate,  0, 1);
insert into article values (article_sequence.nextval, '怎么没可能','怎么没可能', 6, sysdate,1,  2);
insert into article values (article_sequence.nextval, '可能性是很大的','可能性是很大的', 6,sysdate, 1,  2);
insert into article values (article_sequence.nextval, '大象进医院了','大象进医院了', 2, sysdate,0,  2);
insert into article values (article_sequence.nextval, '护士是蚂蚁','护士是蚂蚁', 9, sysdate,1,  3);
commit;

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@ page import="java.sql.*" %>

<%!
String str = "";
private void tree(Connection conn, int id, int level) {
Statement st = null;
ResultSet rs = null;
String preStr = "";
for(int i=0; i<level; i++) {
preStr += "----";
}
try {

st = conn.createStatement();
String sql = "select * from article where pid = " + id;
rs = st.executeQuery(sql);
String strLogin = "";

while(rs.next()) {

str += "<tr><td>" + rs.getInt("id") + "</td><td>" +
       preStr + rs.getString("title") + "</td></tr>";
if(rs.getInt("isleaf") != 0) {
tree(conn, rs.getInt("id"), level+1);
}
}
} catch ( 遍历list元素,用iterator() ,再while(hasNext()),next()有什么好处吗,该如何解决