dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>jsp>文章内容
JSP实现论坛树型结构的具体算法
来源:未知     作者:    
  实现树型结构的算法很多,具体你可以去www.chinaasp.com的全文搜索中查询。我现在的论坛采用的也是当中的一种:不用递归实现树型结构的算法,现在我将树型结构的具体算法和大家介绍一下,和大家一起交流。

  1、演示表的结构:

   表名:mybbslist
   字段     数据类型  说明
   BBSID    自动编号  
   RootID    Int     根帖ID,本身为根帖则RootID = ID
   FID     Int     父帖ID,上一层帖子的ID,如是根帖则FID = 0
   DEPTH    Int     根帖Level=0,其他依据回复的深度递增
   BBSSubject  Char    主题

  2。创建表:

create table mybbslist (
 forumID int(20) not null,
 bbsID int auto_increment primary key,
 rootid int(20) not null,
 fid int(20) not null,
 depth int(20) not null,
 userID int(20) not null,
 bbsUser varchar(24) not null,
 bbsSubject varchar(100) not null,
 bbsContent text,
 bbsTime varchar(30),
 bbsRead int(20),
 bbsReply int(20),
INDEX forumID (forumID))

  3、连接的BEAN

package netzero;
import .sql.*;
public class mydb
{
String driverName = "org.gjt.mm..Driver";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String connURL= "jdbc:://localhost/mybbs?user=root&password=how&useUnicode=true&characterEncode=8859_1";
//String connURL= "jdbc:://localhost/netzerobbs?user=root&password=how";
public mydb()
{
try
{
Class.forName(driverName);
}
catch (.lang.ClassNotFoundException e)
{
System.err.println("netzero(String): " + e.getMessage());
}
}

public ResultSet executeQuery(String sql) throws SQLException
{
conn = DriverManager.getConnection(connURL);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
return rs;
}

public boolean closeConn()
{
try
{
if (rs!=null) rs.close();
if (stmt!=null) stmt.close();
if (conn!=null) conn.close();
return true;
}
catch ( SQLException ex )
{
System.err.println("closeConn: " + ex.getMessage());
return false;
}
}

}

  4、显示的程序

<:useBean id="mybbs" scope="" class="netzero.mydb" />
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import=".io.*" %>
<%@ page import=".sql.*" %>
<%
int intRowCount;
out.print("显示树形结构");
out.print("<br><br>");
try {
String sql="select * from mybbslist order by rootid desc,depth,fid,bbsid";
ResultSet rs = mybbs.executeQuery(sql);
if (rs.next())
{
rs.last();
intRowCount=rs.getRow();
out.print("树中有");
out.print(intRowCount);
out.print("个叶子节点");
rs.first();
int j=0;
int Depth = 0;
out.print("<ul>");
while(j<intRowCount)
{
int rsDepth=rs.getInt("Depth");
if (rsDepth<Depth)
{
for(int i=1;i<Depth+1;i=i+1)
{
out.print("</ul>");
}
}
rsDepth=rs.getInt("Depth");
if (rsDepth>Depth)
{
out.print("<ul>");
}
out.print("<li>");

String bbssubject=rs.getString("bbssubject");
out.print(bbssubject);
out.print("</li>");
Depth = rs.getInt("Depth");
j=j+1;
rs.next();
}
out.print("</ul>");
}
else
{
out.print("中无记录");
}
}catch (SQLException E) {
out.println("SQLException: " + E.getMessage());
out.println("SQLState: " + E.getSQLState());
out.println("VendorError: " + E.getErrorCode());
}
%>
<% //关闭连接
try {
if(!mybbs.closeConn());
} catch (Exception ex) {
System.err.println("closeConn: " + ex.getMessage());
}
%>

 

 

上一篇:一个用JSP实现的分页的类及调用方法   下一篇:在JSP页面中轻松实现数据饼图
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·JSP入门实例教程
·什么是Servlet
·JSP常用内置对象使用说明
·JSP自定义标签由浅到深详细讲解
·JSP自定义标签由浅到深详细讲解
·Java Servlet技术
·Javax.servlet API的特征
·一个简单的jsp注册页面
·JSTL操作数据库示例
·JSP入门实例教程13-MVC模式
·JSP入门实例教程12-jstl处理数
·JSP入门实例教程11-jstl处理xml
  相关文章
·一个用JSP实现的分页的类及调用
·在JSP页面中轻松实现数据饼图
·利用iText在JSP中生成PDF报表
·Jsp结合XML+XSLT将输出转换为Htm
·在JSP中使用JavaMail
·在JSP中访问数据库大全
·JSP的九种基本内置组件简介
·JSP技巧:发送动态图像
·Servlet/JSP配置详解
·JSP调用JavaBean在网页上动态生
·JSP显示内容缓存技巧
·JSP如何连接DB2数据库
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763