HibernateTools使用指南

更新时间:2024-07-02 02:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Hibernate Tools使用指南

ARCH4开发小组 2007年6月

第 1 页 共 28 页

目 录

1

前言 .............................................................................................................................................................................. 3 1.1 文档编写目的 .............................................................................................................................................. 3 1.2 文档适用范围 .............................................................................................................................................. 3 1.3 修订历史 ...................................................................................................................................................... 4 ARCH4开发组的改进 ................................................................................................................................................ 5 Hibernate Tools的使用方法 ........................................................................................................................................ 5 3.1 HibernateTools的配置 ................................................................................................................................. 5

3.1.1 Wordfile格式 ....................................................................................................................................... 5 3.1.2 通过JToolpad从PDM生成wordfile.properties ................................................................................ 6 3.2 HibernateTools的首次使用 ......................................................................................................................... 6

3.2.1 配置.cfg.xml和console configuration................................................................................................. 6 3.2.2 配置.reveng.xml ................................................................................................................................. 11 3.3 HibernateTools的日常使用 ....................................................................................................................... 13

3.3.1 查看配置 ............................................................................................................................................ 13 3.3.2 配置类型映射 .................................................................................................................................... 14 3.3.3 配置表的过滤 .................................................................................................................................... 15 3.3.4 配置表和列 ........................................................................................................................................ 16

3.3.4.1 Table的映射 ................................................................................................................................ 16 3.3.4.2 主键映射 .................................................................................................................................... 17 3.3.4.3 配置字段 .................................................................................................................................... 17 3.3.4.4 外键关系 .................................................................................................................................... 18 3.3.5 检查源代码 ........................................................................................................................................ 18 3.3.6 使用code gen工具生成POJO .......................................................................................................... 19 附录 ............................................................................................................................................................................ 21 4.1 Eclipse插件安装方式 ................................................................................................................................ 21

4.1.1 简便安装 ............................................................................................................................................ 21 4.1.2 用Links方式安装 ............................................................................................................................. 22 4.1.3 插件安装后的效果 ............................................................................................................................ 22 4.2 对于POJO多对多关系的处理(待确认) .................................................................................................. 22 4.3 使用HQL Editor ........................................................................................................................................ 23

2 3

4

第 2 页 共 28 页

1 前言

本文档是《HIBERNATE TOOLS使用指南》,文档讲述的内容是如何使用Hibernate Tools的方法,其中讲述的指导规范要求开发人员必须遵守

开发人员还需要阅读《ARCH4系统开发指南》。本文档是《ARCH4系统开发指南》的补充。

参与项目开发的任何开发人员如果对本文档讲述的内容有疑问,在开发前请询问项目经理,不允许任何开发人员以任何理由违反本文档讲述的规范要求。

JBoss公司网站www.hibernate.org提供的原版的Hibernate Tools存在一些缺陷,为了正常使用Hibernate Tools,ARCH4开发组针对Hibernate Tools进行了一些修正。

1.1 文档编写目的

避免重复研究工具如何使用的问题。明确使用的方法

1.2 文档适用范围

本文档适用于民安产险核心业务系统项目组成员。下表是对项目组成员的最低要求:

项目组成员 项目经理 系统分析师(业务) 系统分析师(技术) 高级程序员 开发工程师 质量保证工程师 是否必读 ■是 □否 ■是 □否 ■是 □否 ■是 □否 ■是 □否 □是 ■否 要求程度 □了解文档结构 ■明白文档内容 □透彻理解 ■了解文档结构 □明白文档内容 □透彻理解 □了解文档结构 □明白文档内容 ■透彻理解 □了解文档结构 ■明白文档内容 □透彻理解 □了解文档结构 ■明白文档内容 □透彻理解 □了解文档结构 □明白文档内容 □透彻理解 对于项目经理、系统分析师、高级程序员和开发工程师,还需要阅读《ARCH4系统架构设计说明书》和《ARCH4系统开发规范》。

第 3 页 共 28 页

1.3 修订历史

修订章节 全部 类型 创建 日期 2007-06-25 作者 周咸立 说明 Hibernate Tools使用指南。 第 4 页 共 28 页

2 ARCH4开发组的改进

JBoss公司网站www.hibernate.org提供的最新版的Hibernate Tools版本为3.2.0.beta9a,此版本存在一些缺陷,特别是在使用Informix数据库时,问题更加严重。为了正常使用Hibernate Tools,ARCH4开发组针对Hibernate Tools进行了一些修正。主要的变化有:

1. 注释

2. 修正Hibernate Tools无法在生成的实体类中设置自定义类型的Bug 3. 当自定义类型为BLOB或CLOB时自动对该字段添加延迟加载的标记

3 Hibernate Tools的使用方法

注意:ARCH4开发组对Hibernate Tools进行了修正。请使用此版本。SVN地址为:

http://192.168.0.196/pncsvn/src/picclp/others/开发文档/Eclipse Plugins/HibernateTools-3.2.0.beta9a-sinosoft 如果无法通过SVN获取,请向项目经理索取。

参照“4.1Eclipse插件安装方式”安装好Hibernate Tools插件后就可以在Eclipse中使用了。 Hibernate Tools的使用思路为: 1. 2. 3. 4.

在cfg.xml中定义基本的数据库配置

在反向工程文件reveng.xml中定义需要映射的库表,及其属性和关系等 code gen工具来定义想要生成哪些文件,目标路径,包名 生成代码.

3.1 HibernateTools的配置

ARCH4开发组对Hibernate Tools增加了一些新的功能。支持通过配置文件支持属性名的自动大小写转换及属性注释。所以需要提供配置文件。

配置文件位于

HibernateTools-3.2.0.beta9a-sinosoft\\eclipse\\plugins\\org.hibernate.eclipse_3.2.0.beta9a\\lib\\tools目录下,名为wordfile.properties。

3.1.1 Wordfile格式

插件支持多个配置文件,首先从wordfile.properties获取,然后依次为wordfile1.properties、wordfile2.properties、…、wordfile10.properties。通常只需要配置wordfile.properties一个文件即可。

wordfile.properties的格式为:带大小写的属性名=属性描述,没个属性一行

第 5 页 共 28 页

如:

AcceptDate=收件时间

AcceptFlag=受理标志(Y/N)

AcceptLicenseDate=初次领证日期 AcceptName=收件人 Account=帐号

AcptDate=接收日期 AcptName=处理人

3.1.2 通过JToolpad从PDM生成wordfile.properties

3.2 HibernateTools的首次使用

首次使用需要配置.cfg.xml,console configuration和.reveng.xml.

3.2.1 配置.cfg.xml和console configuration

按Ctrl+N,打开新建窗口,如下图所示:

第 6 页 共 28 页

选择Hibernate Configuration File(cfg.xml)选项点Next按钮,进入

第 7 页 共 28 页

选择文件夹点Next按钮,进入

第 8 页 共 28 页

注意:Database dialect选项

填写完毕后选中Create a console configuration选项,点Next按钮,进入

第 9 页 共 28 页

填写信息,点Finish按钮,在/helloworld/src/java目录下将会生成hibernate.cfg.xml文件. 通过Window/Show view/other…菜单,进入

选择Hibernate Configurations选项,在eclipse中将能够看到刚才配置的console configuration.

第 10 页 共 28 页

3.2.2 配置.reveng.xml

按Ctrl+N,打开新建窗口,如下图所示:

选择Hibernate Reverse Engineering File(reveng.xml)点Next按钮,进入

第 11 页 共 28 页

选择文件夹点Next按钮,进入

第 12 页 共 28 页

填写信息,点Finish按钮,在/arch4/src/java目录下将会生成hibernate.reveng.xml文件.

3.3 HibernateTools的日常使用

3.3.1 查看配置

打开hibernate.reveng.xml文件即可在eclipse编辑区可以看到Hibernate reverse engineering editor

第 13 页 共 28 页

3.3.2 配置类型映射

对应源码为:

第 14 页 共 28 页

注意:如果有特殊要求,需要生成和默认类型不一致的,则需要配置。否则无需配置。

3.3.3 配置表的过滤

选择Table Filters选择页,配置如下所示的信息:

对应源码为:

match-name=\demo_.*\>

match-name=\smc_.*\>

注意:通常配置时对match-name采用正则表达式配置.如上例中指表名前缀为demo_或smc_的表都将会生成代码.

如果明确不想对某些表处理,也可以通过增加 exclude=\属性使其过滤这些表.

第 15 页 共 28 页

3.3.4 配置表和列

选择Table & Colums选择页,配置如下所示的信息:

3.3.4.1 Table的映射

Catalog 对应数据库的名称 Schema 对应用户名 Name对应数据库中的表名

Class name项指定将生成的pojo的名称,需要带完整的包名 点击Add primary key按钮手动配置主键。

注意:使用Informix时,Schema必须设置正确,否则生成出来的类名可能有问题。通常表现为类名全小写。

第 16 页 共 28 页

3.3.4.2 主键映射

注意:Hibernate Tools这里有个问题,value不能配置值,应该手动修改源码。 对应源码为:

注意:这里我们存在一个规则,当没有设置generator时,工具默认由sequence维护,其名称为 “seq_表名”,如seq_demo_users。通常情况下不需要配置generator。

3.3.4.3 配置字段

Name对应数据库中的字段名

JDBC Type对应JDBC中的类型,默认不填

第 17 页 共 28 页

Property name项指定将生成的pojo中的属性名,区分大小写。 Hibernate Type对应在Hibernate中的类型,默认不填 注意:

如果没有特殊要求,如需要配置类型或改变属性名字,则无需配置该字段,工具将默认生成

如果填写了Property name,生成的POJO属性将按此命名,否则用配置文件中配置的大小写命名,如果配置文件中不存在对应此字段名的配置,将使用字段名作为变量名。目前要求的规则为:通过配置文件配置大小写。

对于CLOB字段,类型为org.springframework.orm.hibernate3.support.ClobStringType 对于BLOB字段,类型为org.springframework.orm.hibernate3.support.BlobByteArrayType

3.3.4.4 外键关系

如果表之间本身就建有外键关系,则无需配置,生成时将自动添加。

如果表之间没有建立外键关系,这可以通过配置在子表上实现。如demo_address中的userid对应

demo_users中的id,但是没有建立外键关系,则可以通过如下配置实现。

代码如下:

3.3.5 检查源代码

选择Source选择页,将看到如下信息:

\>

第 18 页 共 28 页

……

注意:检查每一个table元素是否有primary-key子元素,没有就必须添加.

3.3.6 使用code gen工具生成POJO

选择如下图所示的选项

进入

右键Hibernate Code Generation选择菜单New进入

第 19 页 共 28 页

第 20 页 共 28 页

填写如上图所示的信息,选择Exporters选择页

注意:需要选中Domain code(java),这样才能在pojo中生成元数据信息,另外如果生成的文件名和类名或者生成文件中的属性名的大小写有问题,需要在

\\HibernateTools-3.2.0.beta9a-sinosoft\\eclipse\\plugins\\org.hibernate.eclipse_3.2.0.beta9a\\lib\\tools\\worldfile.properties文件中修改或者添加对应的大小写转换设定。

点Run按钮,在/helloworld/src/java/ins/helloworld/user/model/目录下将生成UtiUser.java文件.

4 附录

4.1 Eclipse插件安装方式

4.1.1 简便安装

把下载后的*.zip文件解压,一般会看到plugins和features文件夹(features文件夹可能没有),大家可以直接把plugins下的文件拷贝到eclipse的plugins文件夹下,如果有features文件夹, 则把features下的文件拷贝到eclipse的features文件夹下,重启eclipse。

第 21 页 共 28 页

4.1.2 用Links方式安装

为了便于管理众多插件,建议用links方式安装各种eclipse插件.

先把插件程序全部放在D:\\plug-in目录里(目录可以自己设定),分别解压。如Lomboz3.0.1.zip解压成Lomboz3.0.1目录,这个目录包含一个plugins目录,要先在Lomboz3.0.1目录中新建一个子目录eclipse,然后把plugins目录移动到刚建立的eclipse 目录中,即目录结构要是这样的:D:\\plug-in\\Lomboz3.0.1\\eclipse\\plugins

Eclipse 将会到指定的目录下去查找 eclipse\\features 目录和eclipse\\plugins 目录,看是否有合法的功能部件和(或)插件。也就是说,目标目录必须包含一个 \\eclipse 目录, 若已经包含eclipse\\plugins目录,则不需要建立eclipse目录。如果找到,附加的功能部件和插件在运行期配置是将是可用的,如果链接文件是在工作区创建之后添加的,附加的功能部件和插件会作为新的配置变更来处理。

然后在 eclipse安装目录D:\\eclipse目录中建立一个子目录links,在links目录中建立一个link文件,比如 LanguagePackFeature.link,改文件内容为 path=D:/plug-in/LanguagePackFeature 即这个link文件要对应一个刚解压后的插件目录。 说明:

1. 插件可以分别安装在多个自定义的目录中。 2. 一个自定义目录可以安装多个插件。

3. link文件的文件名及扩展名可以取任意名称,比如ddd.txt。 4. link文件中path=插件目录的path路径分隔要用\\\\或是/

5. 在links目录也可以有多个link文件,每个link文件中的path参数都将生效。 6. 插件目录可以使用相对路径。

7. 可以在links目录中建立一个子目录,转移暂时不用的插件到此子目录中,加快eclipse启动。

8. 如果安装后看不到插件,把eclipse 目录下的configuration目录中的org.eclipse.update文件夹删除,重启即可。

4.1.3 插件安装后的效果

插件安装后,重启eclipse,在工具栏将出现如下图中红色框所示的按钮即表示安装成功:

4.2 对于POJO多对多关系的处理(待确认)

因为现在hibernate-tools工具不支持many-to-many设置,对于这种情况,我们现在是采用手写的方式进行,请参考

第 22 页 共 28 页

下面的介绍:

假设有两个表User(用户)和Group(群)

其中,一个用户可以加入多个群,一个群也可以包含多个用户,这样它们之间就构成了多对多的关联关系,建数据表时一般会加上一个关联表users_groups.为了在hibernate中实现,我们可以在User和Group类中加入JDK 5.0 Annotations. 在User.java中加入:

private Set groups;

@ManyToMany(targetEntity = User.class,

cascade = {CascadeType.PERSIST, CascadeType.MERGE}) @JoinTable(name = \

joinColumns = { @JoinColumn(name = \

inverseJoinColumns = { @JoinColumn(name = \public Set getGroups() { return groups; }

public void setGroups(Set groups) { this.groups = groups; }

在Group.java中加入: private Set users;

@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = \public Set getUsers() { return users; }

public void setUsers(Set users) { this.users = users; }

4.3 使用HQL Editor

HQL Editor只支持HBM方式,不支持元数据方式。 通过菜单Window/Open Perspective/Other…进入

第 23 页 共 28 页

选择Hibernate Console进入console透视图

右键点击左边的arch4-console-conf,选择Edit Configuration,进入

第 24 页 共 28 页

选择Mappings选择页

第 25 页 共 28 页

注意:图中的三个.hbm.xml文件是在使用code gen工具的时候在Exporters选项框选中 1. Hibernate XML Mappings(.hbm.xml)时生成

点Finish按钮进入Hibernate Console透视图时将会变成如下图所示:

第 26 页 共 28 页

注意图中红色框部分

2. 右键点击左边的arch4-console-conf,选择HQL Editor,将会出现HQL编辑器,在其中输入HQL语句,

点编辑器左上角的执行按钮,结果将在eclipse下方的Hibernate Query Result窗口中显现

第 27 页 共 28 页

注意: 上面写的HQL语句可以按CTRL+SHIFT+F键进行格式化

另外,在Hibernate Dynamic SQL Preview窗口可以看到hibernate翻译后的SQL语句

第 28 页 共 28 页

本文来源:https://www.bwwdw.com/article/pa9.html

Top