public static String initTreeMenu() {
// TODO Auto-generated method stub
Connection con=null;
ResultSet rs=null;
PreparedStatement pstmt=null;
StringBuffer sb=new StringBuffer();
try {
con=DBUtil.getInstance().getConnection();
String sql="select * from RESOURCENODE_INFO t where pid=0";
pstmt=(PreparedStatement) con.prepareStatement(sql);
rs=pstmt.executeQuery();
sb.append("<?xml version='1.0' encoding='utf-8'?>").append("<menu>");
while(rs.next()){
sb.append("<node id='"+rs.getInt("id")).append("' name='"+rs.getString("name")).append("'>");
if(rs.getInt("isResource")==0){
sb.append(tree(con,rs.getInt("id")));
}
sb.append("</node>");
}
sb.append("</menu>");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBUtil.getInstance().free(rs, pstmt, con);
}
return sb.toString();
}
public static String tree(Connection con,int id){
String sql="select * from RESOURCENODE_INFO t where t.pid = "+id;
StringBuffer sb=new StringBuffer();
try {
PreparedStatement pstmt=(PreparedStatement) con.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
sb.append("<node id='"+rs.getInt("id")).append("' name='"+rs.getString("name")).append("'/>");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
//测试函数
public static void main(String[] args) {
String sb=initTreeMenu();
System.out.println(sb);
}
分享到:
相关推荐
实现递归查询通常需要使用递归算法,但SQL不直接支持。我们可以使用存储过程或者在Java代码中处理。例如,可以使用`findAllByOrderByParentIdAsc()`获取所有节点,然后在内存中遍历和构造树形结构。 最后,业务逻辑...
Java无限递归树是一种在Java编程中用于表示层级关系数据结构的技术,通常在构建复杂的UI,如文件系统、组织架构或者数据库表的层次结构时使用。这种树结构能够无限制地自我扩展,允许节点拥有任意数量的子节点,从而...
递归模式是指XML结构中节点之间的层级关系可能形成循环引用,这在实际数据模型中颇为常见,但同时也给访问控制带来了挑战。 首先,文章关注了基于安全视图的访问控制。安全视图是一种过滤机制,它可以重写查询以...
传统的实现方式通常使用递归算法,但这种方法可能会导致内存消耗过大,尤其是在菜单层级很深的情况下。本主题介绍了一种不依赖递归的高效方法来创建无限级树型菜单,具有快速加载的特点。 首先,我们来看`WriteXML....
**JSP AJAX 树详解** 在网页开发中,动态...通过理解JSP的基础、AJAX的工作原理以及递归算法的运用,我们可以轻松地构建出类似“JSP AJAX 树”的功能,提升用户体验,同时也为项目的可维护性和扩展性打下坚实基础。
1. **数据准备**:数据源可以是任何结构化的数据,如数据库查询结果、XML文件、JSON对象或者自定义的数据结构。这些数据需要映射到TreeView的节点结构。 2. **递归函数定义**:创建一个方法,接收当前节点和子节点...
最后,`aspxTreeView递归`可能是包含更多细节的代码片段,如具体的C#代码或数据库查询语句,用于实现上述的递归加载功能。 总结起来,这个示例通过ASPXTreeView控件展示了如何使用C#和ASP.NET实现递归加载树形数据...
"递归实现的无限级下拉式菜单"是一种常见的设计模式,尤其适用于网站导航,它允许用户通过点击主菜单项来展开各级子菜单,从而方便地访问深层次的页面结构。这种设计能够有效地组织大量层次分明的数据,使得用户能...
3. **递归调用**:递归是一种算法或函数设计技巧,通过调用自身来解决问题。在构建菜单树时,递归方法常用于遍历树结构,将每个节点及其子节点转换为HTML元素。每次递归调用都会处理一个子树,直到所有节点都被处理...
总的来说,这个项目涉及了Java基础的IO操作、递归算法的应用、XML文件的读写,以及Java应用的跨平台部署策略。通过这些技术,开发者提供了一个方便的工具,能够安全地删除多层级目录及文件,并记录操作历史。这对于...
总结起来,“TreeCtrlTest”是一个优秀的MFC Tree控件应用实例,它结合了递归算法和XML处理技术,使得开发人员能够方便地管理和操作XML数据。通过学习和理解这个示例,我们可以更好地掌握MFC Tree控件的用法,以及...
- 递归处理:在处理无限级城市时,递归算法是非常重要的工具。例如,遍历所有城市、查找特定城市或计算某个层级的人口总数,都可以通过递归函数实现。 3. **文件存储与读取** - 数据持久化:为了保存城市数据,...
在.NET框架中,TreeView控件是一个非常常用的组件,...总之,递归显示TreeView是通过利用递归算法和数据模型,动态地构建和展现层次结构的过程。理解并熟练运用这一技巧,对于开发涉及树形结构展示的应用程序至关重要。
本实例将详细介绍如何使用C#的递归算法来生成XML。 首先,理解递归的基本概念是至关重要的。递归是一种函数调用自身的技术,通常用于解决具有重复子问题的问题。在生成XML的上下文中,递归可以帮助我们构建一个节点...
3. 将获取到的数据转换为多叉树结构,这可能涉及到递归算法,确保所有子节点都被正确地关联到父节点。 4. 将多叉树转换为 JSON 格式,返回给前端。 5. 前端接收到 JSON 数据后,使用 JavaScript 树形控件(如 Ext JS...
这通常通过递归遍历解析后的XML树来实现,每进入一个元素层级增加一个缩进单位,遇到元素结束时返回上一层并减少缩进。 4. **处理特殊字符**:XML中的特殊字符(如"、"&")需要转义,格式化时要确保它们正确地被...
总之,"菜单转换树结构相关代码"涉及到了数据结构、对象建模、数据解析、递归算法、树的遍历和操作等多个Java编程的关键知识点。在实际开发中,理解和掌握这些概念有助于高效地实现功能并优化用户体验。