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】是一个以树形结构呈现的在线讨论平台,它利用了JDBC(Java Database Connectivity)技术来与数据库进行交互,并通过SQL(Structured Query Language)语句进行数据操作。在这个项目中,重点...
【PHP4.3树形论坛】是一个基于PHP4.3版本构建的在线讨论平台,它采用了树状结构来展示论坛的帖子和回复,使得信息层次清晰,用户可以更直观地查看和参与讨论。在这样的论坛中,每个主题(thread)被视为一棵树的根...
为了实现树形展示,可能需要在数据库中为每个帖子记录其父帖子的ID,这样在查询时可以通过递归或层次查询方法获取整个帖子树。此外,还需要考虑如何有效地缓存和分页显示数据,以提高性能和用户体验。 综上所述,...
综上所述,"Java树状结构实现BBS"项目展示了如何利用Java编程语言,结合树形数据结构和递归算法,构建一个用户友好的在线论坛。同时,项目还包含了数据库操作、权限控制和高效的分页技术,这些都为提升用户体验和...
5. **构建树形结构显示** - 分析树结构:每个帖子都有一个`pid`,代表其父帖子。通过递归函数,根据`pid`找到子帖子并逐层展开。 - JSP方法实现:定义一个`tree`方法,接收连接、当前帖子ID和层级深度作为参数。...
允许自定义是否使用树形结构,影响的包括: 改成树形后将不再限制回复帖子数量 禁止使用树形期间的回复帖子将不再按树形方式排列 显示某主题相关帖子时将仅按简单的方式列出 禁止树形方式的浏览...
3. 论坛结构:使用递归算法生成和显示层级结构,每个主题或帖子可以视为树的一个节点。 4. 帖子管理:包括创建、编辑、删除帖子,以及回复、引用、评分等互动功能。 5. 搜索功能:提供关键字搜索,帮助用户快速找到...
同时,每个版块的帖子数量统计、最新帖子显示等也需要数据库查询支持。 再者,模板引擎的运用能实现前后端分离,提高代码可维护性和用户体验。例如,Smarty或Twig等模板引擎允许开发者将视图逻辑从业务逻辑中解耦,...
【标题】"bbs2008"是一个基于Web的论坛系统,可能是一个早期的开源项目或者教学示例,用于展示如何使用数状结构(可能是树状结构)和平板结构来组织和显示论坛帖子。这样的设计有助于用户更方便地浏览和参与讨论。 ...
在实际应用中,这种数据结构常用于表示具有递归层次关系的数据,例如论坛的帖子结构,每个帖子可以有无数个回复,形成一个无限深的树形结构。 在数据结构中,树由节点和边组成,每个节点可以有零个或多个子节点。在...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...