浏览 1163 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-01-22
昨天写了前台生成视图所使用的JS代码,没有涉及到后台,其实后台实现有多种途经,如果你的树不想具备扩展功能,所有的功能都是固定的,不需要将节点加到数据库里面,这个时候,你可以使用txt,js,jsp,xml等任何你喜欢的方式存储你的节点数据,只要你喜欢,就是可以的,个人觉得,存储到xml和数据库中,是最为方便的,扩展也最为容易,特别是存储在数据库中,再结合系统的权限系统,做一棵带有严格权限控制的树,对搭好一个项目的基础框架,是很有用的.
做一小推广,希望大伙可以接受~~域名(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来生成.自己看文档了. 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-01-22
好想要有JDK50支持啊。
|
|
| 返回顶楼 | |


![ecsun的博客: [海鹏Blog]--{FaceYe开源} 用户头像](http://www.javaeye.com/upload/logo/user/36668/bcfaff38-8200-4288-88e6-f588c3138e36.gif?1196653519)

