转自: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 图的基本概念,培养根据实际应用领域数据对象描述、抽取数据对象特征、关联关系等信息,设计数据库概念结构的能力,并学习 Power ...
### E-R建模与关系表转换 #### 实验概述 本次实验主要围绕“E-R建模与关系表转换”这一主题展开,旨在帮助学生更好地理解并掌握E-R图的基本概念,进而通过实践操作来加深对数据库概念结构设计的理解。本实验报告...
在“数据库对象”窗口中,选择要生成E-R图的数据库对象,例如表、视图、索引等。 ### 步骤4:生成E-R图 点击“反向工程”按钮,PowerDesigner将从数据库中提取schema信息,并生成相应的E-R图。 ### 步骤5:调整E-...
- **面向对象建模**:支持UML(统一建模语言),包括用例图、时序图和类图。类图可以转化为CDM和PDM,为数据存储创建结构,同时也能转换为各种编程语言如C#、C++、Java、PB和VB的代码框架,便于应用程序的开发。 - ...
在Mac操作系统中,为了进行软件测试和设计工作,绘制用例图和E-R...无论是为了描绘系统功能的用例图,还是梳理数据结构的E-R图,都能借助这类工具轻松完成。下载并安装"StarUML310.dmg",开始你的图表绘制之旅吧!
在软件开发过程中,E-R图(实体-关系图)是一种重要的工具,用于数据建模,尤其是在数据库设计的早期阶段。E-R图通过图形化的方式表示实体、关系以及它们之间的属性,帮助开发者理解业务需求并创建出高效、符合逻辑...
例如,梁在城研究了传统E-R模型向面向对象模型的转换,陈志群则探索了基于语义数据库建模的E-R方法。这些研究扩展了E-R模型的应用范围,并与本文形成了一定的学术互动和知识关联。 E-R模型在数据库设计中的应用非常...
E-R模型,即实体-关系模型,是数据库概念设计阶段常用的一种工具,用于描绘现实世界的实体及其相互关系。本章节主要围绕E-R模型进行复习,涵盖了数据库设计的基本流程,包括需求分析、概念设计、逻辑设计、模式求精...
"数据库建模E-R模型" 数据库设计过程是指将用户的需求转化为数据库系统的一系列步骤。整个设计过程可以分为六个步骤:需求分析、概念设计、逻辑设计、物理设计、模式求精和应用与安全设计。 需求分析是数据库设计...
9. **UML Class Diagram.ddt** - UML类图模板,表明DiagramDesigner支持统一建模语言(UML)中的类图绘制,这对于软件开发过程中的面向对象设计很有用。 10. **Polygons.ddt** - 多边形模板,提供各种形状,可以用于...
面向对象建模是软件开发中的核心概念,尤其在GIS(地理信息系统)领域,它有助于理解和构建复杂的系统结构。GIS面向对象分析涉及对现实世界地理实体的抽象和建模,以便在计算机系统中进行处理。张老师的课件中提到了...
《音乐网站需求分析及E-R图》 音乐网站的需求分析主要涵盖了系统的目标群体、系统架构、数据类型、用户类别、运行环境、业务流程、数据描述、E-R模型以及关系模型等多个方面,旨在为项目的开发、设计和测试提供明确...
PowerDesigner 9.0支持面向对象建模,通过UML(Unified Modeling Language)这一标准化图形化建模语言,实现了系统静态结构的清晰描绘与内部对象间关系的详尽展现。其中,类图、时序图与用例图构成了核心,不仅能够...
在E-R模型中,"实体"代表现实世界中的对象或概念,可以是人、物、事件等。每个实体都有若干属性,描述了实体的特性。例如,在一个学生管理系统中,"学生"可以是一个实体,"姓名"、"学号"和"年龄"就是它的属性。 ...
3. **TD-LTE网络中的数据对象及E-R图设计** 数据建模是构建数据库的基础,它定义了数据实体及其关系,以便有效地存储和管理网络配置信息。 - **数据建模步骤**:包括需求分析、概念模型设计、逻辑模型设计、物理...
虽然在数据库建模中不太直接使用面向对象的概念,但理解对象和类的概念有助于设计更为复杂的系统结构。 数据库设计通常分为四个主要步骤:需求分析、概念设计、逻辑设计和物理设计。在需求分析阶段,确定系统的需求...
实体关系(Entity-Relationship,简称E-R)模型作为数据库设计中的基石,提供了描述现实世界企业中涉及的数据的一种有力方式,通过对象及其关系来呈现。本文将深入探讨E_R图设计的基础知识,帮助读者理解其核心概念...
标题与描述均提到了"Myeclipse对象建模设计",这指向了在Myeclipse集成开发环境中进行的对象建模设计,特别关注于UML(统一建模语言)的应用。UML是一种广泛使用的标准建模语言,用于软件工程中的系统规格说明、可视...
E-R图通过图形化的方式帮助我们理解和设计数据库结构,尤其在概念数据建模阶段。以下是E-R图的组成部分、其用处以及如何将E-R图转换为关系模式的详细解释。 1. **实体** - 实体是现实世界中可识别的独立对象或事件...