hibernate-middlegen生成pojo

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

http://jaist.dl.sourceforge.net/sourceforge/hibernate/Middlegen-Hibernate-r5.zip

<!--[if !supportLists]-->1       <!--[endif]-->先决条件

<!--[if !supportLists]-->1.1    <!--[endif]-->已安装JDK(版本1.5以上)并配置环境变量

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

JAVA_HOMEJDK安装目录

CLASS_PATHJDK安装目录\lib

PATHJDK安装目录\bin

<!--[if !supportLists]-->1.2    <!--[endif]-->已安装ant并配置环境变量

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

ANT_HOMEant解压目录

<!--[if !supportLists]-->2       <!--[endif]-->所需jar包

<!--[if !supportLists]-->Ø         <!--[endif]-->生成hbm文件所需jar

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

msbase.jar,

mssqlserver.jar,

msutil.jar

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

<!--[if !supportLists]-->Ø         <!--[endif]-->生成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 下载

<!--[if !supportLists]-->3       <!--[endif]-->生成过程

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

<!--[if !supportLists]-->3.1    <!--[endif]-->生成hbm文件

<!--[if !supportLists]-->3.1.1   <!--[endif]-->设置build.xml

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

<!--[if !supportLists]-->Ø         <!--[endif]-->24行:更改数据库配置

<!DOCTYPE project [

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

]>

<!DOCTYPE project [

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

]>

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

<!--[if !supportLists]-->Ø         <!--[endif]-->33行:设置包名

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

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

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

<!--[if !supportLists]-->Ø         <!--[endif]-->51行:设置输出目录

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

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

指定输出目录为mysrc文件夹

<!--[if !supportLists]-->Ø         <!--[endif]-->185行:又是包名

package="${name}.hibernate"

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

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

<!--[if !supportLists]-->3.1.2   <!--[endif]-->设置数据库连接文件

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

<!--[if !supportLists]-->l         <!--[endif]-->

<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中可能是指模式吧。

<!--[if !supportLists]-->l         <!--[endif]-->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下。

<!--[if !supportLists]-->3.2    <!--[endif]-->生成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,生成的<span

你可能感兴趣的:(jdk,xml,freemarker,Hibernate,ant)