2008-01-22
一棵完整的异步加载的Ext树 (2) 后台数据结构
昨天写了前台生成视图所使用的JS代码,没有涉及到后台,其实后台实现有多种途经,如果你的树不想具备扩展功能,所有的功能都是固定的,不需要将节点加到数据库里面,这个时候,你可以使用txt,js,jsp,xml等任何你喜欢的方式存储你的节点数据,只要你喜欢,就是可以的,个人觉得,存储到xml和数据库中,是最为方便的,扩展也最为容易,特别是存储在数据库中,再结合系统的权限系统,做一棵带有严格权限控制的树,对搭好一个项目的基础框架,是很有用的.
做一小推广,希望大伙可以接受~~域名(www.faceye.com/cn/net)准备出售.我个人对域名有绝对的拥有权,在中国万网注册,由于没有时间去开发,有兴趣的朋友可以和我联系,也可以合作开发.联系方式:MSN:myecsun@hotmail.com,QQ:82676683, Mail:ecsun@sohu.com
后台的数据库实现方式有很多种,有些人喜欢生成一棵树用几张数据库表,有多少级节点,就用多少个数据库表,这是一种穷举的做法,个人觉得,扩展性不够强,这里我们使用一张数据库表存储所有的节点数据.
1.给出实体类的实现:
说明:
1).BaseObject 没有什么好说的,里面有两个属性,id,name,(getter/setter),再加上几个基础的方法.
2).Domain 是我为了做全局控制,加上的一个属性,大伙不用理会这个对像,可以不加这个对像.说这个对像的话,涉及到的内容有点多,以后树写完了,分开写了.
2.xml映射文件:
说明:
1).同样,在这里面不用关注domain对像.
实体和xml的结构基本就这样了,数据库结构由这两个文件来生成了,萝卜白菜各有所爱,我喜欢用ant来生成.自己看文档了.
做一小推广,希望大伙可以接受~~域名(www.faceye.com/cn/net)准备出售.我个人对域名有绝对的拥有权,在中国万网注册,由于没有时间去开发,有兴趣的朋友可以和我联系,也可以合作开发.联系方式:MSN:myecsun@hotmail.com,QQ:82676683, Mail:ecsun@sohu.com
后台的数据库实现方式有很多种,有些人喜欢生成一棵树用几张数据库表,有多少级节点,就用多少个数据库表,这是一种穷举的做法,个人觉得,扩展性不够强,这里我们使用一张数据库表存储所有的节点数据.
1.给出实体类的实现:
package com.faceye.core.service.security.model;
import java.util.HashSet;
import java.util.Set;
import com.faceye.core.componentsupport.dao.model.Domain;
import com.faceye.core.dao.hibernate.model.BaseObject;
/**
*
* @author:宋海鹏
* @Connection:E_mail:ecsun@sohu.com/myecsun@hotmail.com QQ:82676683
* @Copy Right:www.faceye.com
* @System:www.faceye.com网络支持系统
* @Create Time:2007-9-22
* @Package com.faceye.core.service.security.model.Tree.java
* @Description:树形结构实体类
*/
public class Tree extends BaseObject {
private String action;
private Tree parentTree;
private Set<Tree> childrenTrees=new HashSet(0);
private Domain domain;
private String url;
public Set<Tree> getChildrenTrees() {
return childrenTrees;
}
public void setChildrenTrees(Set<Tree> childrenTrees) {
this.childrenTrees = childrenTrees;
}
public Tree getParentTree() {
return parentTree;
}
public void setParentTree(Tree parentTree) {
this.parentTree = parentTree;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Domain getDomain() {
return domain;
}
public void setDomain(Domain domain) {
this.domain = domain;
}
}
说明:
1).BaseObject 没有什么好说的,里面有两个属性,id,name,(getter/setter),再加上几个基础的方法.
2).Domain 是我为了做全局控制,加上的一个属性,大伙不用理会这个对像,可以不加这个对像.说这个对像的话,涉及到的内容有点多,以后树写完了,分开写了.
2.xml映射文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping> <class name="com.faceye.core.service.security.model.Tree" table="SYS_TREE"> <id name="id" unsaved-value="" type="string"> <column name="id" length="32"></column> <generator class="uuid.hex"></generator> </id> <property name="name" type="string"> <column name="name" length="50"></column> </property> <property name="action" type="string"> <column name="action" length="255"></column> </property> <property name="url" type="string"> <column name="url" length="255"></column> </property> <many-to-one name="parentTree" column="PARENTID" class="com.faceye.core.service.security.model.Tree" cascade="save-update" /> <many-to-one name="domain" column="domain_id" class="com.faceye.core.componentsupport.dao.model.Domain" cascade="save-update" /> <set name="childrenTrees" cascade="save-update" inverse="true"> <key column="PARENTID" /> <one-to-many class="com.faceye.core.service.security.model.Tree" /> </set> </class> <query name="queryTrees"> <![CDATA[ from Tree t ]]> </query> </hibernate-mapping>
说明:
1).同样,在这里面不用关注domain对像.
实体和xml的结构基本就这样了,数据库结构由这两个文件来生成了,萝卜白菜各有所爱,我喜欢用ant来生成.自己看文档了.
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 44140 次
- 性别:


- 详细资料
搜索本博客
我的相册
Faceye基础版(开源)新建标签页
共 24 张
共 24 张
链接
最新评论
-
Faceye基础版(开源)介绍 ...
可以支持其它数据库,数据库无关的,DAO主要为Hibernate,目前已知有朋友 ...
-- by ecsun -
Faceye基础版(开源)介绍 ...
能否支持其他数据库
-- by netwalkerli -
Faceye基础版(开源)介绍 ...
Faceye刚刚起步,还有很多不完善的地方需要进一步完善,可以给大伙带来欢喜,是 ...
-- by ecsun -
Faceye基础版(开源)介绍 ...
谢谢你奉献
-- by lzmhehe -
Faceye基础版(开源)介绍 ...
目前已知已经有很多朋友安装成功了,MySQL数据库导入历来存在编码等一系列问题, ...
-- by ecsun






评论排行榜