Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码

1.下载Middlegen相关代码 

(1)Middlegenhttp://voxel.dl.sourceforge.net/sourceforge/hibernate/middlegen-hibernate-r5.zip

(2)hibernate3.xhttp://sourceforge.net/projects/hibernate/files/hibernate3/

(3)其他jar包

还需要以下jar包:

hibernate-tools.jar-》在hibernate-extensions-2.1.3.zip中

jdom.jar-》在hibernate-extensions-2.1.3.zip中

dom4j-1.6.1.jar

slf4j-api-1.5.6.jar

slf4j-log4j12-1.5.6.jar

commons-lang-1.0.1.jar

freemarker.jarhttp://sourceforge.net/projects/freemarker/files/freemarker/2.3.16/freemarker-2.3.16.tar.gz/download

mysql-connector-java-5.0.8-bin.jar

将以上jar文件放入middlegen-hibernate-r5的lib目录中

2.使用Middlegen生成hibernate映射文件

2.1配置数据库文件

进入d:\middlegen-hibernate-r5目录下的\config\database子目录,选择你要得数据库文件,我使用的是mysql.

将原来的

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <property name="database.driver.file" value="${lib.dir}/***"/>   

改成

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <property name="database.driver.file" value="${lib.dir}/mysql-connector-java-5.0.8-bin.jar"/>  

其中mysql-connector-java-5.0.8-bin.jar为你自己数据库驱动文件的名字。

下面指定数据库与用户名以及密码。

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <property name="database.script.file" value="${src.dir}/sql/${name}-mysql.sql"/>   
  2. <!--property name="database.driver.file" value="${lib.dir}/mysql-connector-java-3.0.0-beta-bin.jar"/-->   
  3. <property name="database.driver.file" value="${lib.dir}/mysql-connector-java-3.0.15-ga-bin.jar"/>   
  4. <property name="database.driver.classpath" value="${database.driver.file}"/>   
  5. <property name="database.driver" value="org.gjt.mm.mysql.driver"/>  
  6. <!--下面的hibernate为你的数据库名字>  
  7. <property name="database.url" value="jdbc:mysql://localhost:3306/test"/>   
  8. <property name="database.userid" value="root"/>   
  9. <property name="database.password" value=""/>   
  10. <property name="database.schema" value=""/>   
  11. <property name="database.catalog" value=""/>   
  12. <property name="jboss.datasource.mapping" value="mysql"/>   

将mysql的驱动程序mysql-connector-java-3.0.15-ga-bin.jarcopy到d:\middlegen-hibernate-r5\lib下

2.2修改build.xml

修改d:\middlegen-hibernate-r5目录下的build.xml文件,此文件是middlegen-hibernate的ant

构建配置。middlegen-hibernate将根据build.xml文件中的具体参数生成数据库表映射

文件

1)第24行修改数据库连接

将hsqldb.xml改成mysql.xml

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <!entity database system "file:./config/database/mysql.xml">   

2)第52行修改输出目录

将${build.dir}/gen-src改成你要的目录

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <property name="build.gen-src.dir" value="${build.dir}/***" />   

3)第184行对应代码的packagename

hibernate节点package属性的默认设置实际上是由前面的

applicationname(${name})和“.hibernate”组合而成,根据我们的需要,

将其改为

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <hibernate   
  2. destination="${build.gen-src.dir}"   
  3. package="org.hibernate.test"   
  4. genxdoclettags="true"   
  5. genintergratedcompositekeys="false"   
  6. javatypemapper="middlegen.plugins.hibernate.hibernatejavatypemapper"   
  7. />   

这里还有一个属性genxdoclettags,如果设置为true,则生成的代码将包含

xdoclettag。

4)第33行修改应用名

将原来的

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <property name="name" value="airline"/>   

改成

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <property name="name" value="test"/>   

运行ant,会生成一个界面

点击界面上的generate按钮则map文件会在定义目录下面生成hibernate的映射文件。

3.使用Middlegen生成java代码

按照上述的配置运行再运行anthbm2java任务,会出现下面的异常:

引用
doesn't support the "output" attribute 与net/sf/hibernate/MappingException

这是因为引用的是Hibernate3要与之前的Hibernate2配置有很大不同。

配置修改如下:

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <!--=====hibernate 3=====-->  
  2.         <target name="hbm2java" description="Generate .java from .hbm files.">  
  3.             <taskdef name="hbm2java" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="lib.class.path" />  
  4.             <hbm2java destdir="${build.gen-src.dir}">  
  5.                 <configuration>  
  6.                     <fileset dir="${build.gen-src.dir}">  
  7.                         <include name="**/*.hbm.xml" />  
  8.                     </fileset>  
  9.                 </configuration>  
  10.                 <hbm2java jdk5="true" />  
  11.             </hbm2java>  
  12.         </target>   

将之前的hbm2javatarget删掉或者注释掉。

就是注释掉下面这一段:

Xml代码  Middlegen + Hibernate3 生成hibernate映射文件 mapping xml + java代码
  1. <!--=== hibernate 2 =====  
  2.     <target name="hbm2java" description="Generate .java from .hbm files.">  
  3.         <taskdef name="hbm2java" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="lib.class.path" />  
  4.         <configuration>  
  5.             <hbm2java output="${build.gen-src.dir}">  
  6.                 <fileset dir="${build.gen-src.dir}">  
  7.                     <include name="**/*.hbm.xml" />  
  8.                 </fileset>  
  9.             </hbm2java>  
  10.         </target>  
  11.     -->  

Okay,现在运行anthbm2java就能得到javaPOJO.

相关推荐