`
java_mike
  • 浏览: 83955 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

面向对象的树型结构设计与实现

阅读更多
面向对象树型结构的设计与实现,以机构为例,机构有它的上级机构和下级机构,以下是相关代码的实现:

Orgnization.java
package com.changtu.oa.model;

import java.util.Set;

/**
 * 组织机构(树型结构)
 * @author Mike
 *
 */
public class Orgnization {

	private int id;
	/**
	 * 机构名称
	 */
	private String name;
	/**
	 * 
	 */
	private String sn;
	/**
	 * 机构描述
	 */
	private String description;
	
	/**
	 * 树型结构,一对多的双向关联
	 */
	private Orgnization parent;
	private Set children;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSn() {
		return sn;
	}
	public void setSn(String sn) {
		this.sn = sn;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public Orgnization getParent() {
		return parent;
	}
	public void setParent(Orgnization parent) {
		this.parent = parent;
	}
	public Set getChildren() {
		return children;
	}
	public void setChildren(Set children) {
		this.children = children;
	}
}


hibernate的映射配置:Orgnization.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class table="T_Orgnization" name="com.changtu.oa.model.Orgnization">
		<id name="id">
			<generator class="identity" />
		</id>
		<property name="name"></property>
		<property name="sn"></property>
		<property name="description"></property>
		
		<!-- 树型结构,一对多双向关联 -->
		<many-to-one name="parent" column="pid" lazy="false"></many-to-one>
		<set name="children" inverse="true" cascade="all">
			<key column="pid"></key>
			<one-to-many class="com.changtu.oa.model.Orgnization" />
		</set> 
		
	</class>

</hibernate-mapping>


   以上是实体以及hibernate配置文件的编写,具体服务层接口的定义与实现和呈现层的实现可以根据的需求去给予实现。
分享到:
评论
1 楼 ningmenglovesoft 2009-09-08  
貌似自连接。

相关推荐

    树形目录文件管理系统

    本系统是自己实现tomcat功能,大了一个简易的web服务器,同时利用反射和注解实现了...前端使用Html+Css+JS实现面向对象编程,实现树形目录结构,实现展开关闭,保存下载功能,是一个功能比较完善的文件管理系统

    人大-面向对象程序设计-个人资料管理工具(免费下载)如需指导请加QQ2945047042

    一个“个人资料管理”工具软件,采用树型结构管理各种知识。 左边是一棵树,点击之后,在右边显示一个文本编辑器,用于显示和编辑信息。 1、树节点操作 左边的树支持所有常见的节点操作(可以使用上部的工具栏按钮...

    软件工程-理论与实践(许家珆)习题答案

    面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。( √) 7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。(×) 8. 软件工具的作用是为了延长软件产品的寿命。(×) 9. ...

    面向复杂产品多级研制体系的协同质量计划管理系统研究 (2010年)

    结合该模型,通过OOP(面向对象编程)和AOP(面向方面编程)设计方法对协同质量计划过程实现与切面实现进行了模型抽象,并采用组件和中间件等信息技术在J2EE平台上构建了高内聚、松耦合、业务流程可调且支持功能横向扩展...

    明日科技C#开发入门及项目实战

    第6章 c#面向对象程序设计 实例057 创建类的对象 实例058 使用构造函数 实例059 通过定义方法求一个数的平方 实例060 使用重载方法实现不同类型数据的计算 实例061 使用属性存储用户编号和姓名 实例062 使用索引器 ...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    第6章 c#面向对象程序设计 92 实例057 创建类的对象 93 实例058 使用构造函数 94 实例059 通过定义方法求一个数的平方 95 实例060 使用重载方法实现不同类型数据的计算 97 实例061 使用属性存储用户编号和姓名 99 ...

    pb技术精髓,不用不要后悔

    PowerBuilder是美国Powersoft公司于90年代初推出的基于客户/服务器体系结构的面向对象的数据库开发工具。该产品一上市即深受广大应用开发人员的喜爱,因此迅速占领市场,目前几乎已发展成为前端工具的事实上的标准。...

    管理系统中计算机应用基础.doc

    人们一般以数据结构的类型来命名数据模型,如层次模型、网状模型、关系模型、 面向对象模型等。 37.关系模型要求关系必须是规化的,即要求每个关系必须满足一定的条件,其中最基 本的一条就是,关系中每个分量必须...

    PHP和MySQL Web开发第4版pdf以及源码

    6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和...

    PHP和MySQL WEB开发(第4版)

    6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和public关键字...

    PHP和MySQL Web开发第4版

    6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

    16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员...

    java源码包2

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包3

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包4

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    管理信息系统 试卷 期末试卷

    40.试述面向对象方法的特点。 41.试述系统分析的任务和工作内容。 42.简述系统总体设计的内容。 43.简述系统实施的主要内容。 五、应用题(本大题共2小题,每小题10分,共20分) 44.某仓库发货方案如下:欠款时间在30...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员...

Global site tag (gtag.js) - Google Analytics