JSP实现论坛树型结构的具体算法

2016-01-29 12:14 20 1 收藏

JSP实现论坛树型结构的具体算法,JSP实现论坛树型结构的具体算法

【 tulaoshi.com - Java 】

 

  实现论坛树型结构的算法很多,我现在的JSP论坛采用的也是当中的一种:不用递归实现树型结构的算法,现在我将论坛树型结构的具体算法和大家介绍一下,和大家一起交流。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/java/)

 

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 (rsDepthDepth)
{
out.print("<ul");
}
out.print("<li");

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/java/)


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());
}
%
 

 

来源:https://www.tulaoshi.com/n/20160129/1485168.html

延伸阅读
  这是我学数据结构编写的算法,我把他整理出来,都是基本算法,供大家学习。我使用c++面向对象形式编写,各种算法都封装在各自的类里,假如想增加功能,在相应的类里增加函数即可。我对树和图的构造也做了一些人性化设计,输入更加形象化,你可能看不懂,没关系漫漫来。各种类都使用模版设计,可以对各种数据类型操作(整形,字符,...
标签: ASP
  数据库设计中order_value是用来排序的,具体实现是    **注意以下的讨论是对一个主题而言,就是对一棵树而言!    如果加一新贴那么  order_value=0    如果跟贴查比父贴  order_value大的order_value    如果有假设为next_value,那么新帖的 &nb...
树型控件用来显示具有一定层次结构的数据项时方便、直观,被广泛地应用在各种软件中,如资源管理器中的磁盘目录就用的是树型 控件,我们在编程中也会经常用到,但 MFC 中提供的 CTreeCtrl 类并不直接支持拖动节点等高级特性,这使我们程序员编程时有很大限制,又给软件用户带来了一些不便。下面就让我们自己动手来解决这个问题,实现...
标签: Web开发
首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下: u 红桃按照从小到大依次为:1-13 u 方块按照从小到大依次为:14-26 u 黑桃按照从小到大依次为:27-39 u 梅花按照从小到大依次为:40-52 u 小王为53,大王为54 算法实现如下: u 首先按照以上编号规则初始化一个包含108个数字的数组 u 每次随机从该数组中抽取一个数字,...
标签: Web开发
代码如下: % '数据库字段为类属性,添加、删除、修改、操作检查等函数为类的方法 Class Cls_Leibie     Private nClassID,sClassName,nParentID,sParentPath,nDepth,nRootID,nChild,nOrderID,sFilePath '定义私有变量(类的属性,即数据库字段对应的变量)     Private rs,s...

经验教程

267

收藏

62
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部