实现JSP论坛树型结构的具体算法
1、JSP论坛之演示表的结构:
- 表名:mybbslist
- 字段 数据类型 说明
- BBSID 自动编号
- RootID Int 根帖ID,本身为根帖则RootID = ID
- FID Int 父帖ID,上一层帖子的ID,如是根帖则FID = 0
- DEPTH Int 根帖Level=0,其他依据回复的深度递增
- BBSSubject Char 主题
2、JSP论坛之创建表:
- 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、JSP论坛之实现连接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论坛的之显示论坛的JavaScript/" target="_blank">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 rsrsDepth=rs.getInt("Depth");
- if (rsDepth﹤Depth)
- {
- for(int i=1;i﹤Depth+1;ii=i+1)
- {
- out.print("﹤/ul﹥");
- }
- }
- rsrsDepth=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");
- jj=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());
- }
- %﹥
上述就是实现的JSP论坛的具体算法及树形结构,希望对你有所帮助。
【编辑推荐】
- 对JSP中的内置对象简单概述
- JSP教程基础篇之HTML表单演示
- JSP教程基础篇之简单首页制作
- JSP教程基础篇之JSP的技术特点
- 什么是JSP以及其强弱势
版权声明:
作者:后浪云
链接:https://www.idc.net/help/412799/
文章版权归作者所有,未经允许请勿转载。
THE END