俗话说得不错,“变化总比计划快”。在项目,在我们这些程序员当中也是常常会遇到的问题。因为就算需求调研得再详细,往往一定还会修改的。为了适应变化,构造易维护易扩展的项目往往是我们的目标之一。
在使用数据库时,相信很多程序员会有我一样的烦恼。就是数据库发生变化时,项目中的hibernate配置的连锁反应,mapping映射需要修改,PO类需要更改等。使用JBossTools中的Hibernate Tools,将为我们解决这一大难题。
一、开发环境
JBoss Tools下载
http://www.jboss.org/tools/download.html
在这里,我是选择在线安装的方式。并且eclipse版本为3.6.2,所以我的选择是:http://www.jboss.org/tools/download/installation/update_3_2.html
(题外:安装完之后,你会发现eclipse的性能大增。除了html、JSP等编辑器外,还有诸多J2EE插件)
二、配置hibernate configurations
1.打开控件窗口
点击 window - open view - other
在hibernate文件夹下打开hibernate configurations
2.add configuration
配置数据库连接资源
图中的MySQL是我之前所创建的数据库连接,若之前没配置的话可以点击New,然后配置数据库连接。
查看数据库,测试是否正常。
三、Hibernate代码生成器
1. 增加Hibernate Code Generation按钮
点击 window - customize perspective
2.点击Hibernate Code Generation configuration
3.创建,管理代码生成配置
- console configuration:选择在第二点中我们创建的数据库连接。
- output directory:配置执行后输出的目录,生成hbm、PO类等。
- package:包名,这里请输入PO类存放的路径。
- reveng.xml:生成mapping和PO类的重要配置文件。
reveng.xml若没生成可以在这里创建。
3.hibernate.reveng.xml
reveng.xml文件,让我们可以控制插件生成后的hbm和PO类的各种属性。
以下是参考:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<type-mapping>
<sql-type jdbc-type="VARCHAR" length="1" hibernate-type="yes_no" />
<sql-type jdbc-type="VARCHAR" length="21" not-null="false"
hibernate-type="cn.com.timekey.drugmonitor.po.type.RoleEnumType" />
<sql-type jdbc-type="VARCHAR" length="15" not-null="false"
hibernate-type="cn.com.timekey.drugmonitor.po.type.PrescriptionTypeEnumType" />
</type-mapping>
<!-- BIN$ is recycle bin tables in Oracle -->
<table-filter match-name="BIN$.*" exclude="true" />
<table-filter match-catalog="cmm" match-name=".*" />
<!-- table allows you to override/define how reverse engineering is done
for a specific table -->
<table name="user" catalog="cmm">
<primary-key>
<generator class="uuid.hex" />
<key-column name="ID" />
</primary-key>
</table>
</hibernate-reverse-engineering>
1.通过type-mapping代码块,我们可以自由的映射出数据库字段和hibernate中的对应字段。
<sql-type jdbc-type="VARCHAR" length="1" hibernate-type="yes_no" />
意思是:把数据库中VARCHAR类型并且长度为1的字段,映射成PO类的boolean属性。
<sql-type jdbc-type="VARCHAR" length="21" not-null="false"
hibernate-type="cn.com.timekey.drugmonitor.po.type.RoleEnumType" />
同理,这里的意思是:把数据库中VARCHAR类型,长度为21的字段映射成我自定义的hibernate类型。
2.通过table-filter代码块,我们可以过滤及指定脚本的目标table。
<table-filter match-catalog="cmm" match-name=".*" />
意思是:cmm数据库下的所有表。
有些情况下,我们脚本执行的并非全部表,这里恰好可以轻松帮我们达到这个目的。
3.table代码块,提供给我们用来覆盖生成的mapping配置。
<table name="user" catalog="cmm">
<primary-key>
<generator class="uuid.hex" />
<key-column name="ID" />
</primary-key>
</table>
这里相信大家应该比较容易猜到了,是起到指定user表中的主键生成规则为uuid.hex。
4.自定义外键配置
<foreign-key constraint-name="prescription_drug_ibfk_3">
<column-ref local-column="DRUG_ID" />
<many-to-one property="drug" cascade="save-update" />
</foreign-key>
同样在<table>代码块内。
constraint-name:约束名,要对应外键的约束名字。
column-ref:配置外键字段名。
many-to-one:配置外键参数,包括属性名等,例中是添加cascade的级别为save-update。默认为空,即none。
更多的reveng.xml说明可参考:http://docs.jboss.org/tools/3.2.0.GA/en/hibernatetools/html_single/index.html#hibernaterevengxmlfile
4.选择导出的文件
在这里我是选择生成mapping的 hbm映射文件及PO类。DAO类一般会用自己的,并且很多时候都是与spring集成的环境下,所以作用不大。cfg.xml文件其实也有点用,导入hbm.xml映射文件的时候,可以参考此文件来拷贝了。
5.运行配置文件
这一切都OK之后,按下RUN键,即可生成我们想要的mapping映射文件及PO类了。
后记
生成的PO类并没有生成序列号是我比较纠结的,但从开发者的角度来看,这个也是可以理解。
- 大小: 51 KB
- 大小: 15.3 KB
- 大小: 56.9 KB
- 大小: 18.9 KB
- 大小: 65 KB
- 大小: 30.7 KB
分享到:
相关推荐
还不错了! Eclipse 配置Hibernate3 插件,生成mapping 和java
请把这个文件解压后方到一个盘下面.在build.xml中的 指出这个文件存放的位置.然后就可以使用了...里面有一个成功的例子 请读者参考 在构建域对象的时候一定要指明在配置文件中的配置信息..
hibernate-mapping
利用XDoclet从Java持久化类生成hibernate mapping,hibernate.cfg.xml和mysql数据库脚本。
hibernate-mapping-3.0.dtd 配置后,就会在xml中进行提示
因为Hibernate在读出hbm.xml文件时需要通过网络读取到hibernate-mapping-3.0.dtd 文件。 如果没有网络不能正常工作。 所以提供上述文件。 以及hibernate-mapping-3.0.dtd,hibernate-configuration-3.0.dtd提供下载...
informatica mapping 生成参数文件 步骤
hibernate-mappinghibernate-mapping
Generic Mapping Tools (GMT) 中文手册
利用mybatis-generator-core可以自动生成实体类、dao接口和mapping映射文件,里头也提供了使用说明: 1、进入lib文件夹里头。 2、修改generatorConfig.xml配置 主要修改数据库地址,用户名,密码,以及数据库名称,...
3- 通过该工具从数据库生成 hbm.xml 配置文件 和 JAVABEAN 文件 其中包含了表的备注和字段的备注自动生成 4- 还可以选择生成 对该表操作的HTML表单文件 和 HTML 列表显示文件。 5- 目前支持 MSSQL2000 MSSQL2005,...
hibernate实体映射文件字段设置默认值
hibernate java o/r mapping
每个实体类有一个对应的hbm.xml配置文件匹配,myeclipse中有个MyEclipse Database Explorer视图,它提供了myeclipse与数据库直接连接的内置窗口,并且通过此窗口可以生成hibernate的mapping文件。 运用myeclipse的...
hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd、hibernate.properties(5.0.7)
2. Hibernate Extention,用来自动生成与那些*.hbm.xml对应的POJO,也就是根据那些对象关系映射的配置文件生成相应的class文件。 HibernateEx里面有一个hbm2java工具,就是用来根据些配置文件生成相应的POJO class。...