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

来源:互联网 发布:mac androidsdk 编辑:程序博客网 时间:2024/05/07 20:51

1、      环境安装

  下载Middlegen-Hibernatehttp://prdownloads.sourceforge.net/hibernate/

下载ant  http://archive.apache.org/dist/ant/

   分别解压

设置环境变量中的path 把ant解压后目录的bin目录添加进去(别忘了和前一个项用;分隔)

把jtds驱动复制到Middlegen-Hibernate的解压后的目录的lib目录中

在Middlegen-Hibernate的目录的config\database中打开mssql.xml

改成

   <property name="database.script.file"           value=""/>
   <property name="database.driver.file"           value="${lib.dir}/sqlserver-4.0.jar"/>
   <property name="database.driver"                value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
   <property name="database.url"                   value="jdbc:sqlserver://10.17.12.47:1433;databaseName=yjs"/>
   <property name="database.userid"                value="sa"/>
   <property name="database.password"              value="Windows2008"/>
   <property name="database.schema"                value="dbo"/>
   <property name="database.catalog"               value="yjs"/>

后两个分别是登陆身份和数据库,必须填写,并且database.url后边也要有数据库名称

在Middlegen-Hibernate的根目录下,修改build.xml 

<!DOCTYPE project [

<!ENTITY database SYSTEM

"file:./config/database/hsqldb.xml">

]>

改成file:./config/database/mssql.xml

是配制数据库的,用的什么数据库改成什么文件

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

工程名称,现在还没体现到有用:)也先改了吧

<propertyname="name" value="HibernateSample"/>

  

<propertyname="build.gen-src.dir"

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

输出路径,改成

<propertyname="build.gen-src.dir"              value="C:\temp"/>

  

<hibernate

destination="${build.gen-src.dir}"

package="${name}.hibernate"

genXDocletTags="false"

genIntergratedCompositeKeys="false"

javaTypeMapper=

"middlegen.plugins.hibernate.HibernateJavaTypeMapper"

/>

生成的包(package)是什么,改成

<hibernate

            destination="${build.gen-src.dir}"

            package="xxxx.xxxx.xxxx"

            genXDocletTags="true"

            genIntergratedCompositeKeys="false"

            javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"

         />

别人对genXDocletTags是这么写的:这里还有一个属性genXDocletTags,如果设置为true,则生成的代码将包含xdoclet tag,这为以后在开发过程中借助xdoclet进行映射调整提供了帮助

 

配制完成,在cmd下,进入Middlegen-Hibernate根目录  输入ant,等着界面出来吧

 

界面出来能看见所选的数据库中的所有表,表的主键,表关系,点表,主键,字段,在下边会有不同的反应

 

1Domain Class Name

对应POJO 的类名

2 KeyGenerator

主键产生器

一般而言,利用uuid.hex方式生成主键将提供最好的性能和数据库平台适

应性。

5Persister

自定义持久类实现类类名

7Dynamic Update

如果选定,则生成UpdateSQL 时不包含未发生变动的字段属性,这样可

以在一定程度上提升SQL执行效能。

9.10分别是Lifecyle和Validatable接口

别的目前认为没什么用~~~

 

点击字段,还可以编辑字段



1 Hibernate mapping specialty

映射类型:

Key :主键

Property :属性

java property name

字段对应的java 属性名

java Type

字段对应的java 数据类型

4Column updateable

生成UpdateSQL时是否包含本字段。

5Column insertable

生成InsertSQL时是否包含本字段。

都弄好了之后点左上角的Generate 按钮,将生成所选择数据库中所有表的映射文件,是所有表!

 

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

这些jar文件可以在一下地址下载:

hibernate3.jar  http://download.csdn.net/detail/yangxiao_1980/9421245

hibernate-tools.jar  http://download.csdn.net/detail/yangxiao_1980/9421248

dom4j-1.6.1.jar  http://download.csdn.net/detail/yangxiao_1980/9421252

slf4j-log4j12-1.5.2.jar  http://download.csdn.net/detail/yangxiao_1980/9421254

slf4j-api-1.5.2.jar  http://download.csdn.net/detail/yangxiao_1980/9421256

slf4j-jdk14-1.5.2.jar  http://download.csdn.net/detail/yangxiao_1980/9421278

freemarker.jar  http://download.csdn.net/detail/yangxiao_1980/9421260

再次打开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"

      />

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

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

                            <includename="**/*.hbm.xml"/>

                     </fileset>

              </hbm2java>

   </target>

<targetname="hbm2java" description="Generate .java from .hbmfiles.">

      <taskdef

         name="hbm2java"

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

         classpathref="lib.class.path"

      />

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

              <configuration>

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

                            <includename="**/*.hbm.xml"/>

                     </fileset>

                     </configuration>

                     <hbm2javajdk5="true"/>

              </hbm2java>

   </target>

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

<!DOCTYPEhibernate-mapping PUBLIC

    "-//Hibernate/HibernateMapping DTD 2.0//EN"

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

变为

<!DOCTYPEhibernate-mapping PUBLIC

    "-//Hibernate/HibernateMapping DTD 3.0//EN"

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

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

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

 

0 0