Hibernate代码生成初接触之Middlegen生成hbm文件和java代码
上一篇:http://www.cnblogs.com/Yuinro/p/3524843.html Eclipse 配置SSH 详解
因为最近接触了SSH配置,但是由于Hibernate代码涉及的代码范围比较大,
要是手动编写38个数据表的Hibernate代码文件,
这不是我希望的,于是就有了本文。
准备工作
下载:
Middlegenide_1.3.3 http://sourceforge.jp/projects/sfnet_middlegen/releases/
Middlegen-Hibernate-r5 http://sourceforge.net/projects/hibernate/files/hibernate-middlegen/hibernate%20plugin%20rel-5/
HibernateTools-3.2.4.GA-R200903141626-H5 http://sourceforge.net/projects/jboss/files/JBossTools/JBossTools3.0.0.x/HibernateTools-3.2.4.GA-R200903141626-H5.zip/download
apache-ant-1.9.3 bin http://ant.apache.org/bindownload.cgi
mysql-connector-java-5.1.28 http://dev.mysql.com/downloads/connector/j/
解压以上所有包
添加环境变量 Ant:
Ant_HOME=D:\Program Files (x86)\apache-ant-1.9.3
path=%Ant_HOME%\bin
配置:
1.首先打开 Middlegen-Hibernate-r5\config\database\* 这里有所有连接数据库的xml文件
我使用mysql5.1,所以就选择了 mysql.xml
打开编辑 粉色标记的地方为需要编辑值
<!-- =================================================================== --> <!-- ant properties/targets for mysql --> <!-- note: this is not a proper xml file (there is no root element) --> <!-- it is intended to be imported from a *real* xml file --> <!-- =================================================================== --> <property name="database.script.file" value="${src.dir}/sql/${name}-mysql.sql"/> <property name="database.driver.file" value="${lib.dir}/mysql-connector-java-5.1.28-bin.jar"/> <property name="database.driver.classpath" value="${database.driver.file}"/> <property name="database.driver" value="org.gjt.mm.mysql.Driver"/> <property name="database.url" value="jdbc:mysql://localhost/uel"/> <property name="database.userid" value="root"/> <property name="database.password" value="密码"/> <property name="database.schema" value=""/> <property name="database.catalog" value=""/> <property name="jboss.datasource.mapping" value="mySQL"/>
我这里使用的是mysql-connector-java-5.1.28-bin.jar
需要将 mysql-connector-java-5.1.28-bin.jar 复制到 Middlegen-Hibernate-r5\lib 目录下
然后到目录 Middlegen-Hibernate-r5 根目录 编辑 build.xml 文件
找到下面代码 将数据库连接文件改为你需要的,我这里使用 mysql.xml
<!DOCTYPE project [ <!ENTITY database SYSTEM "file:./config/database/mysql.xml"> ]>
然后找到下面代码
<hibernate destination="${build.gen-src.dir}" package="org.uel.beans" genXDocletTags="true" genIntergratedCompositeKeys="false" javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper" />
注意标记地方为需要保存的包名称,可随意
设置genXDocletTags为true,包含XDocletTag
最后到 Middlegen-Hibernate-r5/middlegen-lib 使用压缩包方式打开 middlegen-hibernate-plugin-2.1.jar 文件
编辑 middlegen-hibernate-plugin-2.1.jar\middlegen\plugins\hibernate 下的文件 hibernate.vm
打开 hibernate.vm 文件可以见到这是hbm配置文件可以根据你的喜好提前编辑需求,当然也可跳过,待生成完成后再对生成代码进行编辑修改
不过既然我们使用 hibernate3 那么文档得改为 3.0.dtd
生成:
使用cmd的方式访问 Middlegen-Hibernate-r5 目录
然后直接输入命令 ant 即可
之后会运行程序 Middlegen , Middlegen 不可直接点击运行
运行 Middlegen 后,你会见到(如下图)
圈内数字1:开始生成
圈内数字2:连接数据库所有表
圈内数字3:自定义配置信息
生成代码会存在于 Middlegen-Hibernate-r5\build\gen-src\ 文件夹内
这时,文件夹内只存在 *.hbm.xml 文件
*.java 文件并没有生成,下面将继续进行配置并生成 *.java 文件
回到目录 Middlegen-Hibernate-r5 根目录 编辑 build.xml 文件
找到下面代码 修改成如下
<!-- =================================================================== --> <!-- Run hbm2java depends="middlegen" --> <!-- =================================================================== --> <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>
然后将 刚才下载的 HibernateTools-3.2.4.GA-R200903141626-H5 文件夹
复制
HibernateTools-3.2.4.GA-R200903141626-H5.zip\plugins\org.hibernate.eclipse_3.2.4.GA-R200903141626-H5\lib\tools
目录下的文件 freemarker.jar、hibernate-tools.jar
HibernateTools-3.2.4.GA-R200903141626-H5.zip\plugins\org.hibernate.eclipse_3.2.4.GA-R200903141626-H5\lib\hibernate
目录下的文件 dom4j-1.6.1.jar
到 Middlegen-Hibernate-r5/lib 目录下
最后一步
使用cmd的方式访问 Middlegen-Hibernate-r5 目录
然后输入命令 ant hbm2java 即可
当执行完毕后,你会发现 *.java 文件
已经存在于 Middlegen-Hibernate-r5\build\gen-src\ 文件夹内
本文已经完毕,如有建议或技术交流请通过回复进行沟通.