用MiddleGen生成映射文件和用hbm2java生成pojo

一、准备工作 1、下载Hibernate、Hibernate-Extension和Middlegen-Hibernate。
个人认为这三个软件的配置和版本有一定的关联,建议初次配置时使用以下版本:hibernate-2.1.7、Middlegen-Hibernate- r5、hibernate-extensions-2.1.3,下面的配置方法就是针对这三个版本的。差点忘了说下下载地址了,http: //prdownloads.sourceforge.net/hibernate/
2、下载ant软件包。 3、当然JDK环境也不能少的。
二、配置环境变量(我的电脑->系统属性->高级->环境变量) 增加JAVA_HOME=jdk的安装目录(如c:\jdk) 修改path,在path变量值最后加上d:\ant\bin;c:\jdk\bin 进入cmd输入ant,如果出现下面情况说明ant不可用。 Buildfile:build.xml does not exist!

Build failed

三、构建映射文件和POJO 将Hibernate、Hibernate-Extension和Middlegen-Hibernate三个文件解压到d:\Hiernate目录中。 1、由数据库生成映射文件,数据库使用MYSQL 建立数据库sample和表t_user,t_user中包括两个字段:自增主键"id"和用户名字段"name"。 1)、将数据库驱动(如:mysql-connector-java-3.0.17-ga-bin.jar)放入MiddleGen目录下lib\的子目录下,进入MiddleGen目录下的config\database子目录,打开mysql.xml,作如下修改(<!-- -->格式段落为注释):<!--数据库驱动文件路径-->
<property name="database.driver.file" value="${lib.dir}/mysql-connector-java-3.0.17-ga-bin.jar"/>

<!--数据库URL-->
<property name="database.url" value="jdbc:mysql://localhost/sample"/>

<!--数据库用户名-->
<property name="database.userid" value="root"/>

<!--数据库密码-->
<property name="database.password" value="root"/>

2)、修改MiddleGen目录下的build.xml构建文件目录数据库配置文件地址
查找关键字"!ENTITY",得到
<!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">
默认情况下,MiddleGen采用的都是hsqldb.xml,将其修改成我们所用的数据库配置文件(mysql.xml)
<!ENTITY database SYSTEM "file:./config/database/mysql.xml">

Application Name
查找"airline",得到
<property name="name" value="airline"/>

"airline"是MiddleGen配置中默认的Application Name,将其改为我们所定义的名称(如HibernateSample):
<property name="name" value="HibernateSample"/>

映射文件输出目录
查找name="build.gen-src.dir",得到
<property name="build.gen-src.dir" value="${build.dir}/gen-src"/>

修改value="${build.dir}/gen-src"使其指向我们所期望的目录中(如d:/Hibernate/src):
<property name="build.gen-src.dir" value="d:/Hibernate/src"/>

对应该代码的package name
查找"destination",得到
<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="com.leafdly"
genXDocletTags="true"
genIntergratedCompositeKeys="false"
javaTypeMapper=
"middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>


查找<path id="lib.class.path">,得到
<path id="lib.class.path">
<pathelement path="${database.driver.classpath}"/>
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<!-- The middlegen jars -->
<!--fileset dir="${basedir}/.."-->
<fileset dir="${basedir}/middlegen-lib">
<include name="*.jar"/>
</fileset>
</path>


追加Hibernate和Hibernate-Extensions的类包,如下所示:
<path id="lib.class.path">
<pathelement path="${database.driver.classpath}"/>
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<fileset dir="${basedir}/middlegen-lib">
<include name="*.jar"/>
</fileset>

<pathelement path="../hibernate-2.1.7/hibernate2.jar"/>
<fileset dir="../hibernate-2.1.7/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="../hibernate-extensions-2.1.3/tools/hibernate-tools.jar"/>
<fileset dir="../hibernate-extensions-2.1.3/tools/lib">
<include name="*.jar"/>
</fileset>
</path>


build.xm配置完毕!

3)、进入CMD,切到Middlegen-Hibernate目录下(如:D:\Hibernate\Middlegen-Hibernate- r5),输入ant(运行build.xml),即将出现Middlegen界面。如果没有出现大多数都是因为jdbc驱动没有按要求放入lib目录下,注意驱动的文件名必须和\config\database\mysql.xml中"database.driver.file vlaue="中的一致。熟悉一下各项参数,最后单击窗口项部的'Generate'按钮,即能生成数据库中所有表所对应的映射文件,在d\ Hibernate\src\com\leafdly\目录中发现Tuser.hbm.xml文件。

2、配置hbm2java且生成映射文件对应的POJO
1)、进入hibernate-extensions目录下tools\bin打开setenv.bat文件.

查找'set JDBC_DRIVER',得到
set JDBC_DRIVER=C:\Progra~1\SQLLIB\java\db2java.zip;C:\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar

修改成:
set JDBC_DRIVER=C:\Progra~1\SQLLIB\java\db2java.zip;D:\Hibernate\Middlegen-Hibernate-r5\lib\mysql-connector-java-3.0.17-ga-bin.jar

查找'set HIBERNATETOOLS_HOME',得到
set HIBERNATETOOLS_HOME=%~dp0..

修改成:
set HIBERNATETOOLS_HOME=D:\Hibernate\hibernate-extensions-2.1.3\tools

查找'if "%HIBERNATE_HOME%"',在其所在段落上新加一行,加入下面一条语句:
set HIBERNATE_HOME=D:\Hibernate\hibernate-2.1.7

查找'set CP',得到
set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%\hibernate2.jar;%CORELIB%\commons-logging-1.0.3.jar;%CORELIB%\commons-lang-1.0.1.jar;%CORELIB%\cglib-2.0-rc2.jar;%CORELIB%\dom4j-1.4.jar;%CORELIB%\odmg-3.0.jar;%CORELIB%\xml-apis.jar;%CORELIB%\xerces-2.4.0.jar;%CORELIB%\xalan-2.4.0.jar;%LIB%\jdom.jar;%CORELIB%\commons-collections-2.1.jar;%LIB%\..\hibernate-tools.jar

将CP中的各项值改为相对应的,(如:cglib-2.0-rc2.jar,应改为cglib-full-2.0.2.jar),具体参考下面:
set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%\hibernate2.jar;%CORELIB%\commons-logging-1.0.4.jar;%CORELIB%\commons-lang-1.0.1.jar;%CORELIB%\cglib-full-2.0.2.jar;%CORELIB%\dom4j-1.4.jar;%CORELIB%\odmg-3.0.jar;%CORELIB%\xml-apis.jar;%CORELIB%\xerces-2.4.0.jar;%CORELIB%\xalan-2.4.0.jar;%LIB%\jdom.jar;%CORELIB%\commons-collections-2.1.1.jar;%LIB%\..\hibernate-tools.jar


2)进入CMD到hibernate-extensions目录下的\tools\bin子目录中,输入hbm2java D:\Hibernate\src\com\leafdly\Tuser.hbm.xml --output=D:\Hibernate\src(注意映射文件的目录要正确)。在D:\Hibernate\src中将发现多了一个 Tuser.java文件,OK,POJO生成了。!

你可能感兴趣的:(Hibernate,mysql,xml,ant,jdbc)