使用PowerDesigner 的Hibernate O/R Mapping功能简介

转自 http://www.suneca.com

 

对于很多使用过PowerDesigner的人来讲,他们使用PowerDesigner就是使用它来进行数据库物理建模,创建数据库表对象、建立表与表之间的关联关系、创建索引,最后,使用PowerDesigner的Generate DataBase功能生成数据库的DDL语句,最后,将这些DDL语句使用数据库工具进行导入。使用再高级一点的话,我们还可以创建数据源,并在PowerDesigner建立与数据源的连接后,最后,直接通过Generate DataBase的ODBC Generation功能直接在数据库当中建表、建外键、建约束、建索引等数据库对象。
    PowerDesigner对很多很多应用服务器,外部工具,开源框架有着很好的支持,这个是PowerDesigner的最大优势。默认情况下,这些扩展模块都没有启用,我们可以使用Extended Model来启用相应的模块支持,比如Hibernate。这篇文章将使用Object-Oriented Model结合Physical Data Model,并启用Hibernate Extended Model来进行建模,并最终生成相应的Java代码、Hiberante配置文件和映射文件、DataBase DDL语句等。
    首先:我们先创建新的Object-Oritented Model,将Object Language选项当中Java,First diagram选择为Class Diagram,如下图所示:



配置完后,点击Extended Model Definitions面板,在扩展的模型当中选择Hiberante,最后点击确定按钮,如下图所示:



   第二,在Class Diagram当中创建一个新的Package,取名为zizz,并进入zizz package当中的Class Diagram,创建新的Class,新的Class名为User,并在User当中创建新的attribute,如下图所示:



   第三,创建新的Physical Data Model,创建可以有两种方式:第一种是通过File-->New创建新的Physical Data Model;第二种是通过PowerDesigner提供的Model Transfer功能,将Class Diagram Model转化为Physical Data Model,以下图表显示出PowerDesigner当中Model的关联关系:



第一种方式:点击File-->New,在弹出的对话框当中选择Physical Data Model,选择相应的数据库,本次采用的是Oracle 10g数据库,最后点击确定,如下图所示:



接着,在Physical Diagram当中创建新的数据库表,表名为:T_USRE,表列的描述如下图所示:



第二种方式是使用PowerDesigner的Model Transfer功能,将Object-Oriented Model转化为Physical Data Model。点击Tools-->Generate Physical Data Model菜单,在弹出的对话框当中选择相应的数据库。如下图所示:



PowerDesigner将会自动为我们创建一个新的Physical Data Model,并且,自动创建了一张名为User的表,并且自动创建列。创建结果如下图所示:



创建完之后,我们应该按照我们的命令规范对我们的表名、列名做相应的修改,最后,还要将数据精度做一下调整。PowerDesigner的Model Transfer功能非常强大,它不仅能够帮我们创建一个新的数据库物理数据模型,还可以帮我们更新相应的数据库物理模型。
本次将使用第一种创建Physical Data Model的方式。
第四,打开Class Diagram视图,双击User Class,将弹出如下对话框



点右右下角的More,将所有标签页显示出来,在标签页当中选择Mapping,如下图所示:



点击创建按钮图标,创建新的数据源(这里指的数据源即新建的数据库物理数据模型),弹出的对数据源创建向导话框,在对话框当中的Data Source输入任意的名称,如你的项目名称,如下图所示:



点击“下一步”按钮,在弹出的对话框当中选择我们创建的Physical Data Model,接着,点击“完成”按钮,如下图所示。



点击完成按钮后,将弹出如下对话框,在对话框当中选择User对象的Mapping表格,最后点击“确定”按钮。



在新的Mapping当中,我们可以看到,对象User将会Mapping到T_USER表。那数据库列应该怎么进行映射呢?假如数据库的列名跟对象的属性名一致,那我们可以不需要进行列的配置,因为Hibernate本身就可以支持这一点,那如果列不一致呢?那我们应该怎么办?在powerdesigner配置可以有两种方式,第一种,通过attribute mapping进行映射,如下图所示:



第二种是通过Mapping Editor来建立数据库列与类属性之间的映射。点击:tools-->Mapping Editor,将弹出如下的对话框:



选择某一列,从左边拉到右边的指定列,将自动建立列与属性的关联关系,最后点击确定“按钮”。如下图所示:



最后,我们可以从Mapping当中看到数据库列与类属性的映射关系。如下图所示



第五,生成代码。点击Language-->Generate Java Code生成Java代码。在弹出的对话框Option标签当中选择需要生成的类型及在Generated Files选择生成的代码,将可以自动生成代码,如下图所示:






你可能感兴趣的:(JAVA)