首页 | 电子商务新闻 | 电子商务研究 | 电子商务学院 | 电子商务法规 | 电子商务就业 | 电子商务图片 | 会员登录 | 会员投稿
 当前位置:首页>>电子商务学院>>建站技术>>JSP>>正文
JSP实现论坛树型结构的具体算法
文章出处:  作者:  发布时间:2006-03-19
电子商务论坛 文字链广告招租 文字链广告招租 把此文收藏到您的网摘中:
 

实现论坛树型结构的算法很多,具体你可以去www.chinaasp.com的全文搜索中查询。我现在的JSP论坛采用的也是当中的一种:不用递归实现树型结构的算法,现在我将论坛树型结构的具体算法和大家介绍一下,和大家一起交流。

 

  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、连接MYSQL数据库的BEAN


package netzero;
import java.sql.*;
public class mydb
{
String driverName = "org.gjt.mm.mysql.Driver";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String connURL= "jdbc:mysql://localhost/mybbs?user=root&password=how&useUnicode=true&characterEncode=8859_1";
//String connURL= "jdbc:mysql://localhost/netzerobbs?user=root&password=how";
public mydb()
{
try
{
Class.forName(driverName);
}
catch (java.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、显示论坛的JSP程序


<jsp:useBean id="mybbs" scope="session" class="netzero.mydb" />
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.io.*" %>
<%@ page import="java.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());
}
%>
<% //关闭mysql连接
try {
if(!mybbs.closeConn());
} catch (Exception ex) {
System.err.println("closeConn: " + ex.getMessage());
}
%>
 

[返回顶部↑]  [推荐好友] [查看评论]  
用户名: 新注册) 密码: 匿名评论 [查看评论]  发表评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 
↑文章搜索
  关键字:  
  范  围:  
  开始搜索  
※相关文章※
 

◎Jsp结合XML+XSLT将输出转换
◎在JSP页面中轻松实现数据饼

 
※本站广告※
   
※热点文章※
  ·一个用JSP实现的分页的类及
·在JSP页面中轻松实现数据饼
·Jsp结合XML+XSLT将输出转换
 
· 中国电子商务信息港各地代表处子站 ·
广东 - 深圳 - 山东 - 江苏 - 浙江 - 辽宁 - 上海 - 陕西 - 天津 - 北京 - 内蒙古 - 河北 - 湖北 - 河南 - 四川 - 重庆
福建 - 吉林 - 山西 - 甘肃 - 新疆 - 安徽 - 江西 - 广西 - 湖南 - 贵州 - 云南 - 宁夏 - 海南 - 西藏 - 青海 - 黑龙江
版权所有:中国电子商务信息港 建设运营:荆门鑫源互联网络科技有限公司
信息产业部ICP备案编号:鄂ICP备05005878号 ‖ 公安局网监备案编号:WZ4208020071
本站中文全称:中国电子商务信息港中国电子商务信息港黑板报