手机
当前位置:查字典教程网 >编程开发 >JSP教程 >实现论坛树型结构的具体算法
实现论坛树型结构的具体算法
摘要:实现论坛树型结构的算法很多,具体你可以去www.chinaasp.com的全文搜索中查询。我现在的JSP论坛采用的也是当中的一种:不用递归实...

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

1。演示表的结构:

表名:mybbslist

字段

数据类型

说明

BBSID自动编号

RootIDInt根帖ID,本身为根帖则RootID=ID

FIDInt父帖ID,上一层帖子的ID,如是根帖则FID=0

DEPTHInt根帖Level=0,其他依据回复的深度递增

BBSSubjectChar主题

2。创建表:

createtablemybbslist(

forumIDint(20)notnull,

bbsIDintauto_incrementprimarykey,

rootidint(20)notnull,

fidint(20)notnull,

depthint(20)notnull,

userIDint(20)notnull,

bbsUservarchar(24)notnull,

bbsSubjectvarchar(100)notnull,

bbsContenttext,

bbsTimevarchar(30),

bbsReadint(20),

bbsReplyint(20),

INDEXforumID(forumID))

3。连接MYSQL数据库的BEAN

packagenetzero;

importjava.sql.*;

publicclassmydb

{

StringdriverName="org.gjt.mm.mysql.Driver";

Connectionconn=null;

Statementstmt=null;

ResultSetrs=null;

StringconnURL="jdbc:mysql://localhost/mybbs?user=root&password=how&useUnicode=true&characterEncode=8859_1";

//StringconnURL="jdbc:mysql://localhost/netzerobbs?user=root&password=how";

publicmydb()

{

try

{

Class.forName(driverName);

}

catch(java.lang.ClassNotFoundExceptione)

{

System.err.println("netzero(String):"+e.getMessage());

}

}

publicResultSetexecuteQuery(Stringsql)throwsSQLException

{

conn=DriverManager.getConnection(connURL);

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

returnrs;

}

publicbooleancloseConn()

{

try

{

if(rs!=null)rs.close();

if(stmt!=null)stmt.close();

if(conn!=null)conn.close();

returntrue;

}

catch(SQLExceptionex)

{

System.err.println("closeConn:"+ex.getMessage());

returnfalse;

}

}

}

4。显示论坛的JSP程序

<jsp:useBeanid="mybbs"scope="session"class="netzero.mydb"/>

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.io.*"%>

<%@pageimport="java.sql.*"%>

<%

intintRowCount;

out.print("显示论坛树形结构");

out.print("<br><br>");

try{

Stringsql="select*frommybbslistorderbyrootiddesc,depth,fid,bbsid";

ResultSetrs=mybbs.executeQuery(sql);

if(rs.next())

{

rs.last();

intRowCount=rs.getRow();

out.print("论坛树中有");

out.print(intRowCount);

out.print("个叶子节点");

rs.first();

intj=0;

intDepth=0;

out.print("<ul>");

while(j<intRowCount)

{

intrsDepth=rs.getInt("Depth");

if(rsDepth<Depth)

{

for(inti=1;i<Depth+1;i=i+1)

{

out.print("</ul>");

}

}

rsDepth=rs.getInt("Depth");

if(rsDepth>Depth)

{

out.print("<ul>");

}

out.print("<li>");

Stringbbssubject=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(SQLExceptionE){

out.println("SQLException:"+E.getMessage());

out.println("SQLState:"+E.getSQLState());

out.println("VendorError:"+E.getErrorCode());

}

%>

<%//关闭mysql连接

try{

if(!mybbs.closeConn());

}catch(Exceptionex){

System.err.println("closeConn:"+ex.getMessage());

}

%>

算法参考:http://www.chinaasp.com/sqlbbs/showEssence.asp?id=4783

【实现论坛树型结构的具体算法】相关文章:

JSP for循环中判断点击的是哪个按钮

JSP实现oracle数据库链库的常见方法

运行时实现Java的多态性

JSP实现简单的用户登录并显示出用户信息的方法

JSP中实现系统登录后的退出原理及代码

jsp实现cookie的使用

jsp实现页面实时显示当前系统时间的方法

不让tomcat显示目录文件列表的配置方法

用JSP实现的一个日历程序

基于JSP实现一个简单计算器的方法

精品推荐
分类导航