J实现论坛树型结构的具体算法_JSP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

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

作者:黑客防线网安JSP教程基地 来源:黑客防线网安JSP教程基地 浏览次数:0

本篇关键词:算法具体结构论坛
黑客防线网安网讯:  实现论坛树型结构的算法很多,我现在的JSP论坛采用的也是当中的一种:不用递归实现树型结构的算法,现在我将论坛树型结构的具体算法和大家介绍一下,和大家一起交流。     1、演示表...

  实现论坛树型结构的算法很多我现在的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());
  }
  %>
   
  

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-16434-1.html
网站维护教程更新时间:2012-04-07 00:21:34  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer