`
babydeed
  • 浏览: 237980 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ext 后台查数据库数据拼装tree数据

    博客分类:
  • Ext
阅读更多

来自:Extjs交流群(164648099)

 

说明:

两个文件
jackyNode.java  treeVO对象 将数据库当中的树的数据库存入此

jackytree.java  采用递归算法 将一次性查出来的数据生成treeJSON结构

直接将两个文件复制到eclipse中  run as即可查看

 

jackyNode.java

package com.codeasy.common;


public class jackyNode {
	private int id;
	private int parentId;
	private String text;
	jackyNode(){}
	jackyNode(int id,int parentId,String text){
		this.id=id;
		this.parentId = parentId;
		this.text = text;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getParentId() {
		return parentId;
	}
	public void setParentId(int parentId) {
		this.parentId = parentId;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
}

 

 

jackytree.java 

package com.codeasy.common;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*
 * 数据库中的表结构是这样的
 * id  parentid  name 
 * 
 * 
 * 
 */

public class jackytree {
	List nodeList =new ArrayList();
	jackytree(){//构造方法里初始化模拟List
		jackyNode node1 = new jackyNode(1,0,"根节点");  
        jackyNode node2 = new jackyNode(2,1,"一级菜单");  
        jackyNode node3 = new jackyNode(3,1,"一级菜单");  
        jackyNode node4 = new jackyNode(4,2,"二级菜单");  
        jackyNode node5 = new jackyNode(5,2,"二级菜单");  
        jackyNode node6 = new jackyNode(6,2,"二级菜单");  
        jackyNode node7 = new jackyNode(7,6,"三级菜单");  
        jackyNode node8 = new jackyNode(8,6,"三级菜单");  
          
        nodeList.add(node1);  
        nodeList.add(node2);  
        nodeList.add(node3);  
        nodeList.add(node4);  
        nodeList.add(node5);  
        nodeList.add(node6);  
        nodeList.add(node7);  
        nodeList.add(node8);  
	}
	StringBuffer returnStr=new StringBuffer();  
    public void recursionFn(List list , jackyNode node){  
        if(hasChild(list,node)){  
            returnStr.append("{id:");
            returnStr.append(node.getId());
            returnStr.append(",text:'");
            returnStr.append(node.getText());
            returnStr.append("'");
            returnStr.append(",children:[");  
            List childList = getChildList(list,node);  
            Iterator it = childList.iterator();  
            while(it.hasNext()){  
                jackyNode n = (jackyNode)it.next();  
                recursionFn(list,n);  
            }  
            returnStr.append("]},");  
        }else{  
            returnStr.append("{id:");
            returnStr.append(node.getId());
            returnStr.append(",text:'");
            returnStr.append(node.getText());
            returnStr.append("'");
            returnStr.append(",leaf:true},");  
        }  
          
    }  
    public boolean hasChild(List list, jackyNode node){  //判断是否有子节点
    	return getChildList(list,node).size()>0?true:false;
    }
    public List getChildList(List list , jackyNode node){  //得到子节点列表
        List li = new ArrayList();  
        Iterator it = list.iterator();  
        while(it.hasNext()){  
            jackyNode n = (jackyNode)it.next();  
            if(n.getParentId()==node.getId()){  
                li.add(n);  
            }  
        }  
        return li;  
    }
    public String modifyStr(String returnStr){//修饰一下才能满足Extjs的Json格式
    	return ("["+returnStr+"]").replaceAll(",]", "]");
    	
    }
    public static void main(String[] args) {  
        jackytree r = new jackytree();  
        r.recursionFn(r.nodeList, new jackyNode(1,0,"根节点"));  
        System.out.println(r.modifyStr(r.returnStr.toString()));  
    }  
}


 

 

分享到:
评论
1 楼 xyang81 2011-04-08  
学习了。。。。正在想怎么找出父节点下有哪些子节点。。。。

相关推荐

    自己写的一个动态从后台数据库加载Ext.tree的json数据工具类

    在IT行业中,动态地从后台数据库加载数据到前端界面是一种常见的需求,特别是在构建富客户端应用时。本话题涉及的是一个自定义的工具类,用于处理ExtJS库中的Ext.tree组件,该组件通常用来展示层级结构的数据,比如...

    Ext 操作数据库,对数据的增删改查,包括数据库,Ajax请求和store请求的设置

    总的来说,“ExtProject”是一个全面介绍Ext数据库操作和Ajax请求的实践项目,它将帮助初学者快速掌握Ext框架的核心功能,并了解前后端数据交互的基本流程。通过这个项目,你不仅可以学习到Ext的使用,还能进一步...

    Ext与后台数据库交互

    ### Ext与后台数据库交互知识点详解 #### 一、Ext中常用的类 在Ext框架中,为了更好地处理数据和用户界面的交互,引入了一系列强大的类来简化开发过程。 ##### 1.1 Ext.data `Ext.data`是Ext框架的核心模块之一...

    ext操作数据库实例DBExplorer

    "EXT操作数据库实例DBExplorer"是一个利用EXT库开发的数据库管理系统的示例,它提供了对多种数据库的访问和管理功能,并且能够将数据导出为Excel文件。下面我们将深入探讨EXT库以及如何与数据库交互,以及如何实现...

    ext后台管理

    在"EXT后台管理"中,MySQL存储着系统的各类数据,如用户信息、权限设置、系统配置等。开发者可以通过PHP的MySQLi或PDO_MySQL扩展来连接、查询和操作数据库。 系统的设计通常会包含以下几个关键部分: 1. 用户认证与...

    ext后台经典实例

    在EXT后台经典实例中,数据模型通常对应于后端数据库中的表结构。 3. **Store**:Store是EXT中管理数据的核心组件,它链接到数据源(如服务器),负责加载、缓存和处理数据。在"增删改查"操作中,Store会触发加载、...

    ext 前后台数据交互

    "Ext 前后台数据交互" Ext是一个功能强大且灵活的JavaScript框架,提供了许多实用的组件和工具来帮助开发者快速构建复杂的Web应用程序。其中,Ext.data.Connection组件是Ext提供的一种异步调用后台服务的方式,在...

    ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree

    【标题】"ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree" 暗示这是一个关于Ext JS库中TreePanel组件的实例,其中可能包含了用于创建和管理数据结构的树形视图,以及与数据库交互的功能。 【描述】"ext的树的...

    Extjs 加载数据库 生成tree

    通过java 访问数据库而生成节点 子节点的 ID 与 父节点的关系为“父节点id_子节点id”此id为数据库中的id 同理“父节点id_子节点id_子子节点id”,因此加载树时将node.id做为参数 通过split("_"),根据数据的长度就...

    ext 树控件+数据库

    在IT领域,EXT是一个流行的JavaScript库,用于构建富客户端应用程序,尤其在Web应用开发中广泛应用。...通过这种方式,你可以构建一个动态、交互性强的EXT树控件,有效地展示和操作数据库中的层次结构数据。

    Ext tree 结合dwr 调用后台数据

    "Ext tree 结合dwr 调用后台数据"这个主题涉及到两个关键的技术:Ext JS的Tree组件和Direct Web Remoting (DWR)。这两个技术的结合使得前端用户界面能够动态地展示并操作后台的数据。 首先,让我们来了解一下**Ext ...

    Ext 连接数据库的相关操作

    在这个例子中,我们将探讨如何使用EXT连接SQL Server数据库,实现Editgridpanel的数据展示、分页、查询和删除功能。 首先,EXT中的Editgridpanel是一个可编辑的表格组件,用于显示和编辑数据。它集成了数据绑定和行...

    ext grid tree 应用

    在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...

    ext做的数据库管理系统

    在EXT中,开发者可以利用GridPanel展示数据库表格,FormPanel进行数据输入,TreePanel管理数据库结构,而Window或Dialog组件可以用于弹出式操作,如查询条件设置。EXT的数据绑定机制使得前端UI和后端数据之间能实时...

    ext后台模板

    在EXT后台模板中,数据网格常用于展示和管理数据库中的信息。 5. **图表和图形**:EXTJS 提供了丰富的图表和图形组件,如柱状图、饼图、线图等,可用于数据分析和可视化,EXT后台模板可根据需求集成这些组件来呈现...

    ext4 四种常见的tree

    EXT4支持多种数据结构,其中包括了描述文件系统树形结构的“tree”概念。在EXT4中,文件和目录被组织成一棵层次化的树形结构,允许快速地查找、创建和管理文件。 在编程和用户界面设计中,"tree"通常指的是可视化...

    EXT Tree的简单实践

    6. **代码实践**:`extTree.js` 文件很可能是实现 EXT Tree 的具体代码。在这个实践中,开发者可能定义了一个 TreePanel,并设置了相应的配置项,加载了数据,注册了事件处理器。通过阅读和分析这个文件,可以深入...

    Ext 对数据库操作的简单实例

    Ext JS是一个用于构建富客户端Web应用程序的JavaScript库,它提供了丰富的组件和强大的数据管理功能,可以方便地与后端数据库进行通信。在描述中提到的“ext 2.1相关的文件和例子”,意味着我们将探讨的是Ext JS 2.1...

    使用Ext显示数据库中内容

    在与后端数据库交互时,`Ext Grid`通常结合`Ajax`或者`Store`来实现数据的动态加载。 1. **配置`Ext Store`**:在`Ext`中,`Store`是用于存储和管理数据的容器。我们需要创建一个`Store`实例,配置数据源(如:`...

    Ext后台模板

    Ext后台模板是一款基于Ext JS框架开发的管理界面模板,它以简洁、清晰的布局和设计为特点,旨在提供高效、易用的后台操作系统。Ext JS是一个强大的JavaScript库,专用于构建富客户端应用,尤其适用于创建数据密集型...

Global site tag (gtag.js) - Google Analytics