使用MiddleGen-hibernate-r5生成hbm文件及POJO文件

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

    本例使用MiddleGen-Hibernate-r5生成hbm文件及POJO,所使用数据库为SQLServer2000,. MiddleGen-Hibernate-r5下载地址为:

http://jaist.dl.sourceforge.net/sourceforge/hibernate/Middlegen-Hibernate-r5.zip rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C04%5Cclip_filelist.xml">

 

1       先决条件

1.1    已安装JDK(版本1.5以上)并配置环境变量

Ø         http://java.sun.com上下载JDK,配置环境变量(我的电脑右键->属性->高级->环境变量)

JAVA_HOMEJDK安装目录

CLASS_PATHJDK安装目录/lib

PATHJDK安装目录/bin

1.2    已安装ant并配置环境变量

Ø         点击http://apache.mirror.phpchina.com/ant/binaries/apache-ant-1.7.1-bin.zip 下载ant并解压,设置环境变量(我的电脑右键->属性->高级->环境变量)

ANT_HOMEant解压目录

2       所需jar

Ø         生成hbm文件所需jar

由于本例使用的是SQLServer2000数据库,所以需要:

msbase.jar,

mssqlserver.jar,

msutil.jar

三个jar(可以到MS官网上下载)

Ø         生成POJO时所需jar

hibernate3.jar

dom4j- 1.6.1 .jar

可以点击

http://nchc.dl.sourceforge.net/sourceforge/hibernate/hibernate-distribution-3.3.1.GA-dist.zip 下载,dom4j-1.6.1.jar位于 hibernate-distribution-3.3.1.GA/lib/required下(也可以通过http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip 下载)

 

hibernate-tools.jar

freemarker.jar

可以点击

http://jaist.dl.sourceforge.net/sourceforge/jboss/HibernateTools-3.2.4.Beta1-R200810311334.zip 下载,解压后jar包位于

plugins/org.hibernate.eclipse_ 3.2.4 .Beta1-R200810311334/lib/tools

 

slf4j-api- 1.5.2 .jar

slf4j-jdk14- 1.5.2 .jar

slf4j-log4j12- 1.5.2 .jar

可以点击http://www.slf4j.org/dist/slf4j-1.5.2.zip 下载

3       生成过程

将下载的MiddleGen-Hibernate-r5解压到任一目录,并在build目录下新建一个文件夹mysrc

3.1    生成hbm文件

3.1.1   设置build.xml

打开MiddleGen-Hibernate-r5文件夹,找到并打开Build.xml,按照以下步骤对文件进行更改:

Ø         24行:更改数据库配置

<!DOCTYPE project [

    <!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">

]>

<!DOCTYPE project [

    <!ENTITY database SYSTEM "file:./config/database/mssql.xml">

]>

因为所使用的是SQLServer2000数据库,所以在此更改将数据库配置文件更改为mssql.xml

Ø         33行:设置包名

<property name="name" value="airline"/>

<property name="name" value="org.test"/>

生成hbm时会建org.test 文件夹,与JAVA结构一样

Ø         51行:设置输出目录

<property name="build.gen-src.dir"              value="${build.dir}/gen-src"/>

<property name="build.gen-src.dir"              value="${build.dir}/mysrc"/>

指定输出目录为mysrc文件夹

Ø         185行:又是包名

package="${name}.hibernate"

package="${name}.model"//生成文件夹

也可以不设置第33行包名(但有可能不会生成orgtest文件夹,未测试),直接改此处为package="org.yourpackage"

3.1.2   设置数据库连接文件

MiddleGen-Hibernate-r5文件夹下config/database/找到并打开mssql.xml,按如下所示进行修改:

l        

<property name="database.driver.file"           value="${lib.dir}/Sprinta2000.jar"/>

<property name="database.driver"                value="com.inet.tds.TdsDriver"/>

   <property name="database.url"                   value="jdbc:inetdae7:localhost?database=airline"/>

   <property name="database.userid"                value="sa"/>

   <property name="database.password"              value="sa"/>

   <property name="database.schema"                value=""/>

   <property name="database.catalog"               value=""/>

修改为

             <property name="database.driver.file"           value="${lib.dir}/mssqlserver.jar"/>

            <property name="database.driver"                value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>

   <property name="database.url"                   value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=loginDemo"/>

   <property name="database.userid"                value="sa"/>

   <property name="database.password"              value="sa"/>

   <property name="database.schema"                value="dbo"/>

   <property name="database.catalog"               value="loginDemo"/>

其中database.schema在这里应该是指数据库的拥有者,在DB2中可能是指模式吧。

 

l         msbase.jar,mssqlserver.jar,msutil.jar拷至MiddleGen-Hibernate-r5文件夹lib目录

完成上述两个步骤之后,打开cmd,进入MiddleGen-Hibernate-r5目录,运行ant,将会弹出一个GUI界面,如果不想做任何修改,直接点击Generator就可以生成hbm文件了,生成的hbm文件位于MiddleGen-Hibernate-r5文件夹build/mysrc/com/test/model下。

 

3.2    生成POJO

将以下jar包复制到MiddleGen-Hibernate-r5文件夹lib目录

hibernate3.jar, hibernate-tools.jar, dom4j- 1.6.1 .jar, slf4j-log4j12-1.5.2.jar, slf4j-api-1.5.2.jar, slf4j-jdk14-1.5.2.jar, freemarker.jar

再次打开build.xml文件

修改第212

<target name="hbm2java" description="Generate .java from .hbm files.">

      <taskdef

         name="hbm2java"

         classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"

         classpathref="lib.class.path"

      />

             

              <hbm2java output="${build.gen-src.dir}">

                     <fileset dir="${build.gen-src.dir}">

                            <include name="**/*.hbm.xml"/>

                     </fileset>

              </hbm2java>

   </target>

<target name="hbm2java" description="Generate .java from .hbm files.">

      <taskdef

         name="hbm2java"

         classname="org.hibernate.tool.ant.HibernateToolTask"

         classpathref="lib.class.path"

      />

             

              <hbm2java destdir="${build.gen-src.dir}">

              <configuration>

                     <fileset dir="${build.gen-src.dir}">

                            <include name="**/*.hbm.xml"/>

                     </fileset>

                     </configuration>

                     <hbm2java jdk5="true"/>

              </hbm2java>

   </target>

由于Middlegen生成的hbm文件是里面的引用是hibernate2DTD,因此修改生成的hbm.xml里面hibernate2DTD

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

变为

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

(也就是将2变为3,这样就不会出现“Don’t use old DTDs,read the Hibernate3.x Migration Guide!”错误)

运行ant hbm2java,生成的POJO文件位于build/mysrc/com/test/model文件夹下。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值