Middlegen-Hibernate-r5跟hibernate-extensions-2.1.3

Middlegen和hbm2java自动化数据映射工具实践
首先得到如下文件
http://jaist.dl.sourceforge.net/sourceforge/hibernate/hibernate-2.1.8.zip
http://jaist.dl.sourceforge.net/sourceforge/hibernate/hibernate-extensions-2.1.3.zip
http://voxel.dl.sourceforge.net/sourceforge/hibernate/Middlegen-Hibernate-r5.zip
http://apache.justdn.org/ant/binaries/apache-ant-1.6.5-bin.zip
配置好ant的环境变量。
把对驱动文件拷贝到lib目录下
在Middlegen-Hibernate-r5的config/database下找到你要用的数据库类型对应的xml文件
一般需要配置类似如下的项就可以了
schema项是在用oracle库是才指定的其它数据库可以为空
   <property name="database.driver.file"           value="./lib/classes12.jar"/>
   <property name="database.driver.classpath"      value="./lib"/>
   <property name="database.driver"                value="oracle.jdbc.driver.OracleDriver"/>
   <property name="database.url"                   value="jdbc:oracle:thin:@172.10.10.2:1521:transen"/>
   <property name="database.userid"                value="kelch"/>
   <property name="database.password"              value="kelch"/>
   <property name="database.schema"                value="kelch"/>
   <property name="database.catalog"               value=""/>
 <property name="jboss.datasource.mapping"       value="Oracle9i"/>
还要配置关键的build.xml文件
找到
<!DOCTYPE project [<!ENTITY database SYSTEM "file:./config/database/oracle.xml">]>
设置 Middlegen-Hibernate 要加载那个配置文件,也就是你刚刚修改的那个文件

向下几行出找到
<property name="name" value="oracle"/>
value修改为你自己想命名的名字,我改为了"oracle"
 
在下面属性的value中输入你要输出到的文件路径
<property name="build.gen-src.dir" value="./mapping"/>
Hbm映射文件的输出路径

找到这里 默认是别注释掉的
<table name="reservations"/-->
为 Middlegen-Hibernate 选择其将要从数据库中读取的表。当然 build.xml 文件中默认没有设定任何表,此时 Middlegen-Hibernate 将在数据库中读取所有表。对于一般企业应用来讲,几十到几百个表是比较正常的,我想你见过在Middlegen-Hibernate 中显示 100个以上表的情形?,所以这在你想选择编辑某些特定的表的时候特别有用。
name的值就是你的表名
可以有多个这样的标签,来指定你要加载的多个不同表

 找到
 <hibernate
            destination="${build.gen-src.dir}"
            package="cn.kelch.mapping"
            genXDocletTags="true"

            genIntergratedCompositeKeys="false"
            javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
         />
标签,在package中指定你的pojo包名
genXDocletTags在设为true时方便以后使用 
好了
在dos下cd到Middlegen-Hibernate-r5目录下输入ant
ant就自动找到build.xml并解析
接下来你将看到一个gui
选中表
通常要修改
key generator 中的主键增长算法
以及是否动态更新和动态插入的Dynamic updte、Dynamic insert
选中字段
通常要修改
JAVA property name 中的映射类型
确认都修改好了
在点击Generate后在你指定的输出目录下将生成了与表对应的xml映射文件
Hibernate-extensions工具将根据这些xml文件生成对应的.java文件
让我们来开始使用Hibernate-Extensions吧
在使用它之前我们需要吧hibernate-2.1.8编译下
在hibernate-2.1.8目录下点击build.bat
完成后我们正式开始吧
在tools目录的子目录bin下找到设置环境变量的setenv.bat
修改其中的设置
把你的hibernate-2.1.8目录设置为HIBERNATE_HOME变量的值
JDBC_DRIVER的值就是你的驱动文件
HIBERNATETOOLS_HOME的便是你目前所在的tools目录
我的设置入下
set JDBC_DRIVER=E:/tools/middlegen-hibernate/tools/lib/classes12.jar
set HIBERNATE_HOME=E:/tools/middlegen-hibernate/hibernate-2.1
set HIBERNATETOOLS_HOME=E:/tools/middlegen-hibernate/tools

需要注意的是这里
set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%/hibernate2.jar;%CORELIB%/commons-logging-1.0.4.jar;%CORELIB%/commons-lang-1.0.1.jar;%CORELIB%/cglib-full-2.0.2.jar;%CORELIB%/dom4j-1.4.jar;%CORELIB%/odmg-3.0.jar;%CORELIB%/xml-apis.jar;%CORELIB%/xerces-2.4.0.jar;%CORELIB%/xalan-2.4.0.jar;%LIB%/jdom.jar;%CORELIB%/commons-collections-2.1.1.jar;%LIB%/../hibernate-tools.jar
请确保在你的对应目录下下有这些文件并名字也一样。很不幸运的是,在hibernate-2.1.8的lib下的跟这里引用的会有些不太一样,一个个去对应吧
设置好了就保存
现在我们来修改hbm2java.bat
在call 后面输入刚刚修改的setenv.bat的路径
ok
在dos下cd到hbm2java.bat目录下
输入
hbm2java 你用middlegen生成的xml目录/*.xml --output=类文件的输出目录
在你指定的类文件输出目录下将会有你想得到的.java文件
接下来你要如何使用这些类和映射文件,我就不可预测了。也许你会拷贝到你的工程下去编译,你也可以开始就把生成路径设置为你工程放置这些文件的路径。
数据映射就此完成
如果你对表之间的关系比如一对多等等不了解,工具生成的xml就是你学习的例子

现在你是否行动了

 

你可能感兴趣的:(Hibernate)