`

递归显示论坛树状帖子、删除帖子

    博客分类:
  • J2SE
SQL 
阅读更多
1、关于递归方法的使用(2个):

    (1)用递归展现树状的帖子,代码如下:

public void tree(List<Article> articles, Connection conn, int id, int grade) {
 String sql = "select * from article where pid = " + id;
 Statement stmt = DB.createStmt(conn);
 ResultSet rs = DB.executeQuery(stmt, sql);
 try {
  while (rs.next()) {
   Article a = new Article();
   a.initFromRs(rs);
   a.setGrade(grade);
   articles.add(a);
   if (!a.isIsleaf()) {
    tree(articles, conn, a.getId(), grade+1);
   }
  }
 } catch (SQLException e) {
  e.printStackTrace();
 } finally {
  DB.close(rs);
  DB.close(stmt);
 }
}

//调用上面的方法
List<Article> articles = new ArrayList<Article>();
Connection conn = DB.getConn();
tree(articles , conn, 0, 0);
DB.close(conn);

 (2)用递归方法删除帖子:

         public void delete (Connection conn, int id, boolean isLeaf) {
 if (!isLeaf) {
  String sql = "select * from article where pid = " + id;
  Statement stmt = DB.createStmt(conn);
  ResultSet rs = DB.executeQuery(stmt, sql);
  try {
   while (rs.next()) {
    delete(conn, rs.getInt("id"),rs.getInt("isleaf")==0);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DB.close(rs);
   DB.close(stmt);
  }
 }
 //delete self
 DB.executeUpdate(conn,"delete from article where id = " + id);
 
}


int id = Integer.parseInt(request.getParameter("id"));
int pid = Integer.parseInt(request.getParameter("pid"));
String url = request.getParameter("from");
boolean isLeaf = Boolean.parseBoolean(request.getParameter("isleaf"));
ResultSet rs = null;
Statement stmt = null;
Connection conn = DB.getConn();
boolean autoCommit = true;


 autoCommit = conn.getAutoCommit();
//设置事物为手动提交
 conn.setAutoCommit(false);
//调用删除方法。
 delete(conn, id, isLeaf);
分享到:
评论

相关推荐

    树状展示论坛项目BBS

    【树状展示论坛项目BBS】是一个以树形结构呈现的在线讨论平台,它利用了JDBC(Java Database Connectivity)技术来与数据库进行交互,并通过SQL(Structured Query Language)语句进行数据操作。在这个项目中,重点...

    PHP4.3树形论坛

    【PHP4.3树形论坛】是一个基于PHP4.3版本构建的在线讨论平台,它采用了树状结构来展示论坛的帖子和回复,使得信息层次清晰,用户可以更直观地查看和参与讨论。在这样的论坛中,每个主题(thread)被视为一棵树的根...

    BBS.zip_jsp 树形

    为了实现树形展示,可能需要在数据库中为每个帖子记录其父帖子的ID,这样在查询时可以通过递归或层次查询方法获取整个帖子树。此外,还需要考虑如何有效地缓存和分页显示数据,以提高性能和用户体验。 综上所述,...

    Java树状结构实现BBS

    综上所述,"Java树状结构实现BBS"项目展示了如何利用Java编程语言,结合树形数据结构和递归算法,构建一个用户友好的在线论坛。同时,项目还包含了数据库操作、权限控制和高效的分页技术,这些都为提升用户体验和...

    web项目bbs[定义].pdf

    5. **构建树形结构显示** - 分析树结构:每个帖子都有一个`pid`,代表其父帖子。通过递归函数,根据`pid`找到子帖子并逐层展开。 - JSP方法实现:定义一个`tree`方法,接收连接、当前帖子ID和层级深度作为参数。...

    LeadBBS极速ASP论坛 v2.77

    允许自定义是否使用树形结构,影响的包括: 改成树形后将不再限制回复帖子数量 禁止使用树形期间的回复帖子将不再按树形方式排列 显示某主题相关帖子时将仅按简单的方式列出 禁止树形方式的浏览...

    树型论坛(占用小)

    3. 论坛结构:使用递归算法生成和显示层级结构,每个主题或帖子可以视为树的一个节点。 4. 帖子管理:包括创建、编辑、删除帖子,以及回复、引用、评分等互动功能。 5. 搜索功能:提供关键字搜索,帮助用户快速找到...

    PHP论坛实例

    同时,每个版块的帖子数量统计、最新帖子显示等也需要数据库查询支持。 再者,模板引擎的运用能实现前后端分离,提高代码可维护性和用户体验。例如,Smarty或Twig等模板引擎允许开发者将视图逻辑从业务逻辑中解耦,...

    bbs2008

    【标题】"bbs2008"是一个基于Web的论坛系统,可能是一个早期的开源项目或者教学示例,用于展示如何使用数状结构(可能是树状结构)和平板结构来组织和显示论坛帖子。这样的设计有助于用户更方便地浏览和参与讨论。 ...

    无限级别树代码+数据结构

    在实际应用中,这种数据结构常用于表示具有递归层次关系的数据,例如论坛的帖子结构,每个帖子可以有无数个回复,形成一个无限深的树形结构。 在数据结构中,树由节点和边组成,每个节点可以有零个或多个子节点。在...

    JAVA上百实例源码以及开源项目源代码

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

Global site tag (gtag.js) - Google Analytics