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

对象建模还是E-R建模

阅读更多

转自:http://qiaomuren.blog.hexun.com/11855630_d.html

良好的模型对于高效的开发高性能的应用系统是至关重要的。每个团队在进行设计时都必须得进行选择:是用纯
OOD/OOA 的思想进行对象建模或者用面向关系数据的思想进行 E-R 建模,这是个艰难的抉择!选择其中的每一种都会导致不同的开发流程,其中各有利弊。

  下面是使用对象建模的一些工具和方法步骤:

  流程:类图 —>Java 源代 - à ( Xdoclet)- à 映射文件( .hbm.xml - à 数据库表 - à 物理数据模型(如果需要的话)

  1、   先用对象建模工具(例如 rose )把类图设计好。在该步骤中要注意把各个类之间的关系(如一对一、一对多、多对多)搞清楚,这使得下一步添加 Xdoclet 时工作量比较小。

2、   用对象建模工具从设计好的类图中导出 Java 源代码。

3、   导出源代码后就可在源代码中添加 Xdoclet 标签了,这些标签用于生成 Hibernate 的映射文件。在添加 Xdoclet 标签时要注意的是:要把 Xdoclet 标签加在每个属性的 getter ()方法之前,如果只在属性前加标签生成映射文件时就会报错。

举个例子 , 有一个人的实体类,我们在加 Xdoclet 时要特别注意,不要只加在属性之前,而是要加在每个属性的 getter ()方法之前,事实上可以不在属性之前加 Xdoclet 标签,如下所示例子中有一个 Set 类型的 address 属性,元素是 Address 对象(例子没有给出),假设一个人有多个地址,这是一个一对多的关系,在配置一对多和多对多关系时有几点要注意:

import java.io.Serializable;

import java.util.Set;

import java.util.HashSet;

 

/**

  *         @hibernate .class

  *         table="Tperson"

  *

  */

public class Person implements Serializable {

    private Long personId ;

    private String name ;

    private int age ;

    private Set address = new HashSet(); // 在这一定要实例化 address 对象

    // 我们应该在这加 Xdoclet

   

    /**

      * 年龄

      *      @hibernate .property

      *      type="int"

      *      column="age"

      */

    public int getAge() {

       return age ;

    }

   

    public void setAge( int age) {

       this . age = age;

    }

   

    /**

      * 用户 ID

      *      @hibernate .id

      *      generator="native"

      *      type="java.lang.Long"

      *      column="personId"

      */

    public Long getPersonId() {

       return personId ;

    }

   

    public void setPersonId(Long personId) {

       this . personId = personId;

    }

   

    /**

      * 用户姓名

      *      @hibernate .property

      *      type="java.lang.String"

      *      column="name"

      *      length="32"

      *      not - null="true"

      */

    public String getName() {

       return name ;

    }

   

    public void setName(String name) {

       this . name = name;

    }

   

    /**

      * 用户地址

      *      @hibernate .set

      *      table - "Taddress"

      *      class="Address"

      *

      *      @hibernate .collection - key

      *      column="personId"

      *

      *      注意下面是 collection - one - to - many 而不是 one - to - many

      *      对于多对多关系也是这样 collection - many - to - many

      *      @hibernate .collection - one - to - many   

      *      class="Person"

      */

    public Set getAddress() {

       return address ;

    }

 

    public void setAddress(Set address) {

       this . address = address;

    }

}

加完了这些 Xdoclet 我们就可以用工具生成映射文件了。一般用得较多的 Xdoclet Hibernate 标签有 :

              @hibernate .class

              @hibernate .id

              @hibernate .property

              @hibernate .set

              @hibernate.many-to-one

 

以上只给出了一些经常用的标记,大家在开发时可参考 Xdoclet 手册。

4、   Myeclipse project properties 窗口,选择左侧的 “MyEclipse-XDoclet” “Add Standard...” “Choose an entry” 这儿选择 “Standard Hibernate” 。如下图:右键电击你的工程,然后选择属性,你就会看到这个图。然后选择 Myeclipse 选项就会看到其中有一个子选项 Xdoclet ,点击 Xdoclet 出现如下界面,然后点击 Add Standard 按钮,选择其中的 Standard Hibernate ,我们可以看到, Xdoclet 支持很多技术的代码生成。

5、   右键点击工程根目录,选择 Myeclipse 选项的 Run Xdoclet ,这样就可以生成映射文件了生成的映射文件默认情况下是和你的 POJO 在同一目录下。(在这我只举了用 Myeclipse 工具生成映射文件,你也可以用其他方式生成,可选工具: Xdoclet—1.2.3( 支持 Hibernate3) Ant 构建,具体配置请查阅相关资料)

  6 、这一步要从映射文件生成数据库表。下面写一个测试类来生成数据库表,同时也一定程度上验证了我们的映射文件的配置文件是否正确,如果不正确,那么在生成数据库表时就会发生错误。

import java.io.File;

import java.util.List;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.HibernateException;

import org.hibernate.cfg.Configuration;

import junit.framework.TestCase;

public class TestHibernate extends TestCase {

    protected Session session ;

    public TestHibernate(String s) {

       super (s);

    }

    protected void setUp() throws Exception {

       super .setUp();

       try {

           Configuration config = new Configuration().configure( new File( "C:\\hibernate.cfg.xml" ));

           SessionFactory factory = config.buildSessionFactory();

           session = factory.openSession();

       } catch (HibernateException e) {

           e.printStackTrace();

       }

    }

    protected void tearDown() throws Exception {

       super .tearDown();

       try {

           session .close();

       }

分享到:
评论

相关推荐

    E-R图和数据库建模

    在E-R图中,实体通常用矩形表示,它们代表现实世界中的对象或概念,如用户、产品或订单。实体的属性则以椭圆形表示,这些属性描述了实体的特征。连接实体的线段称为关系,它们表示不同实体间的相互作用。有时,关系...

    数据库实验--E-R建模与关系表转换--实验报告

    数据库实验报告 - E-R 建模与关系表转换 本实验报告的主要目的是了解和掌握 E-R 图的基本概念,培养根据实际应用领域数据对象描述、抽取数据对象特征、关联关系等信息,设计数据库概念结构的能力,并学习 Power ...

    E-R建模与关系表转换

    ### E-R建模与关系表转换 #### 实验概述 本次实验主要围绕“E-R建模与关系表转换”这一主题展开,旨在帮助学生更好地理解并掌握E-R图的基本概念,进而通过实践操作来加深对数据库概念结构设计的理解。本实验报告...

    用PowerDesigner反向工程生成E-R图

    在“数据库对象”窗口中,选择要生成E-R图的数据库对象,例如表、视图、索引等。 ### 步骤4:生成E-R图 点击“反向工程”按钮,PowerDesigner将从数据库中提取schema信息,并生成相应的E-R图。 ### 步骤5:调整E-...

    6数据库建模工具简介--Power_Designer9.0.ppt

    - **面向对象建模**:支持UML(统一建模语言),包括用例图、时序图和类图。类图可以转化为CDM和PDM,为数据存储创建结构,同时也能转换为各种编程语言如C#、C++、Java、PB和VB的代码框架,便于应用程序的开发。 - ...

    mac下画用例图、E-R图的工具

    在Mac操作系统中,为了进行软件测试和设计工作,绘制用例图和E-R...无论是为了描绘系统功能的用例图,还是梳理数据结构的E-R图,都能借助这类工具轻松完成。下载并安装"StarUML310.dmg",开始你的图表绘制之旅吧!

    软件工程实验E-R图

    在软件开发过程中,E-R图(实体-关系图)是一种重要的工具,用于数据建模,尤其是在数据库设计的早期阶段。E-R图通过图形化的方式表示实体、关系以及它们之间的属性,帮助开发者理解业务需求并创建出高效、符合逻辑...

    E-R模型应用实例

    例如,梁在城研究了传统E-R模型向面向对象模型的转换,陈志群则探索了基于语义数据库建模的E-R方法。这些研究扩展了E-R模型的应用范围,并与本文形成了一定的学术互动和知识关联。 E-R模型在数据库设计中的应用非常...

    数据库系统原理与设计(万常选版)总复习CH4 数据库建模(E-R模型)-复习.ppt

    E-R模型,即实体-关系模型,是数据库概念设计阶段常用的一种工具,用于描绘现实世界的实体及其相互关系。本章节主要围绕E-R模型进行复习,涵盖了数据库设计的基本流程,包括需求分析、概念设计、逻辑设计、模式求精...

    数据库建模E-R模型.ppt

    "数据库建模E-R模型" 数据库设计过程是指将用户的需求转化为数据库系统的一系列步骤。整个设计过程可以分为六个步骤:需求分析、概念设计、逻辑设计、物理设计、模式求精和应用与安全设计。 需求分析是数据库设计...

    画-E-R-图工具(1)

    9. **UML Class Diagram.ddt** - UML类图模板,表明DiagramDesigner支持统一建模语言(UML)中的类图绘制,这对于软件开发过程中的面向对象设计很有用。 10. **Polygons.ddt** - 多边形模板,提供各种形状,可以用于...

    GIS面向对象建模基础

    面向对象建模是软件开发中的核心概念,尤其在GIS(地理信息系统)领域,它有助于理解和构建复杂的系统结构。GIS面向对象分析涉及对现实世界地理实体的抽象和建模,以便在计算机系统中进行处理。张老师的课件中提到了...

    音乐网站需求分析及E-R图

    《音乐网站需求分析及E-R图》 音乐网站的需求分析主要涵盖了系统的目标群体、系统架构、数据类型、用户类别、运行环境、业务流程、数据描述、E-R模型以及关系模型等多个方面,旨在为项目的开发、设计和测试提供明确...

    07 数据库建模工具简介--Power Designer9.0.pdf

    PowerDesigner 9.0支持面向对象建模,通过UML(Unified Modeling Language)这一标准化图形化建模语言,实现了系统静态结构的清晰描绘与内部对象间关系的详尽展现。其中,类图、时序图与用例图构成了核心,不仅能够...

    数据挖掘-03-E-R模型的介绍.ev4.rar

    在E-R模型中,"实体"代表现实世界中的对象或概念,可以是人、物、事件等。每个实体都有若干属性,描述了实体的特性。例如,在一个学生管理系统中,"学生"可以是一个实体,"姓名"、"学号"和"年龄"就是它的属性。 ...

    2.《LTE网络配置数据库》课程实验背景资料及数据建模-20-v41

    3. **TD-LTE网络中的数据对象及E-R图设计** 数据建模是构建数据库的基础,它定义了数据实体及其关系,以便有效地存储和管理网络配置信息。 - **数据建模步骤**:包括需求分析、概念模型设计、逻辑模型设计、物理...

    [详细完整版]数据库建模.pdf

    虽然在数据库建模中不太直接使用面向对象的概念,但理解对象和类的概念有助于设计更为复杂的系统结构。 数据库设计通常分为四个主要步骤:需求分析、概念设计、逻辑设计和物理设计。在需求分析阶段,确定系统的需求...

    E_R图设计基础教程

    实体关系(Entity-Relationship,简称E-R)模型作为数据库设计中的基石,提供了描述现实世界企业中涉及的数据的一种有力方式,通过对象及其关系来呈现。本文将深入探讨E_R图设计的基础知识,帮助读者理解其核心概念...

    myeclipse对象建模设计.txt

    标题与描述均提到了"Myeclipse对象建模设计",这指向了在Myeclipse集成开发环境中进行的对象建模设计,特别关注于UML(统一建模语言)的应用。UML是一种广泛使用的标准建模语言,用于软件工程中的系统规格说明、可视...

    MySQL数据库实验(四):E-R图实例讲解

    E-R图通过图形化的方式帮助我们理解和设计数据库结构,尤其在概念数据建模阶段。以下是E-R图的组成部分、其用处以及如何将E-R图转换为关系模式的详细解释。 1. **实体** - 实体是现实世界中可识别的独立对象或事件...

Global site tag (gtag.js) - Google Analytics