Hibernate中的Middlegen入门指南
目标:利用middlegen生产hbm.xml文件
工具:
1、Middlegen-Hibernate-r5 相关连接
2、hibernate-2.1.8 相关连接
3、hibernate-extensions-2.1.3 相关连接
4、xdoclet-bin-1.2.3相关连接
5、ant-1.6.5 相关连接
6、j2dk1.4以上
工作步骤:
1、 安装好j2dk,并设好JAVA_HOME
2、 安装好ant(一般解压到某个目录即可),并设好ANT_HOME
3、 设置好path和classpath
设置好以后,可以在dos提示下运行set命令查看,以下是我设置好后运行set的结果,供参考:
D:\javatools\Middlegen-Hibernate-r5>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
ANT_HOME=D:\ant-1.6.5
APPDATA=C:\Documents and Settings\Administrator\Application Data
C51INC=D:\JavaWebStudio\C51\INC
C51LIB=D:\JavaWebStudio\C51\LIB
CLASSPATH=.;C:\Java\jdk1.5.0_01\lib;C:\Java\jdk1.5.0_01\lib\tools.jar;C:\Java\jdk1.5.0_01\lib\dt.jar;D:\javatools\apache-ant-1.6.5\lib\ant.jar;
CLOUDSCAPE_INSTALL=D:\eclipse_plugin\cloudscape
ClusterLog=C:\WINDOWS\Cluster\cluster.log
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=SMXSH
ComSpec=C:\WINDOWS\system32\cmd.exe
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
JAVA_HOME=C:\Java\jdk1.5.0_01
LOGONSERVER=\\SMXSH
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=.;C:\Java\jdk1.5.0_01\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\tools\groovy-1.0-beta-9\bin\;D:\ant-1.6.5\bin;C:\php;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSHPROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TOMCAT_HOME=D:\eclipse_plugin\jakarta-tomcatUSERDOMAIN=SMXSH
USERNAME=Administrator
USERPROFILE=C:\Documents and Settings\Administrator
windir=C:\WINDOWS
注意加粗红体字部分。
个人体会:ANT_HOME设置时不能包含bin目录,否则运行ant不会找builder.xml文件,正常运行时,如果当前目录下没有builder.xml文件,会提示:
D:\javatools>ant
Buildfile: build.xml does not exist!
Build failed
4、 以上工作做好后需要配置数据库了,用mysql时情况:
(1) 安装好mysql4.1,设置root密码:root;
(2) 建立数据库,脚本如下:
CREATE DATABASE `test4_4` /*!40100 DEFAULT CHARACTER SET gb2312 */;
(3)建立表tpassport:
DROP TABLE IF EXISTS `tpassport`;
CREATE TABLE `tpassport` (
`Id` int(11) NOT NULL auto_increment,
`serial` varchar(30) default NULL,
`expiry` int(11) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
(4)建立表tuser:
DROP TABLE IF EXISTS `tuser`;
CREATE TABLE `tuser` (
`Id` int(11) NOT NULL auto_increment,
`age` int(11) default NULL,
`name` varchar(50) default NULL,
PRIMARY KEY (`Id`),
CONSTRAINT `fk2` FOREIGN KEY (`Id`) REFERENCES `tpassport` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
以上建立的表已经有外键约束。
个人体会:建立数据库时选择数据库类型为innodb,就可以使用外键等功能
5、 下载mysql-mysql-connector-java-3.1.10,将jar文件拷贝到middlegen-hibernate-r5下的lib中
6、 将hibernate2.1.8下的hibernate2.jar及lib目录下的jar文件、hibernate-extensions下的hibernate-tools.jar及lib目录xia的jar文件、xdoclet-bin-1.2.3下的jar文件全部拷贝到middlegen-hibernate-r5下的lib中。
注意:可能最后middlegen-hibernate-r5下的lib中有重名(虽然版本不同)的jar文件,仅保留版本较新的jar文件,否则运行ant时会提示:
D:\javatools\Middlegen-Hibernate-r5>ant middlegen
Buildfile: build.xml
init:
…….
[middlegen] Exception in thread "AWT-EventQueue-0" java.lang.IncompatibleClassCh
angeError
[middlegen] at middlegen.KindFileResourceLoader.getResourceStream(KindFileRe
……...
7、 修改Middlegen-Hibernate-r5\config\database\下的mysql.xml文件
<property ame="database.script.file" value="${src.dir}/sql/${name}-mysql.sql"/>
<property name="database.driver.file" value="${lib.dir}/mysql-connector-java-3.1.10-bin.jar"/>①
<!—这里的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/test4_4"/>③
<!—数据库名为test4_4à
<property name="database.userid" value="root"/>④
<!—数据库连接用户名为rootà
<property name="database.password" value="root"/>⑤
<!—数据库连接用户名root的密码为rootà
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="mySQL"/>
8、 修改Middlegen-Hibernate-r5下的build.xml文件
(1)修改database名为mysql.xml
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/mysql.xml">
]>
(2)修改生成的hbm.xml文件所在的包名
<property file="${basedir}/build.properties"/>
<property name="name" value="test"/>
(3)可选:修改生成的hbm.xml文件所在的目录,可以不改,生成的包含xml文件的包就在
Middlegen-Hibernate-r5\build\gen-src\下
<property name="build.gen-src.dir" value="${build.dir}/gen-src"/>
9、开始运行:
在dos提示下:
(1)转到middlegen-hibernate-r5目录下
Cd Middlegen-Hibernate-r5
(2)运行middlegen
Ant middlegen
(3)可以看到如下图内容:
(4)点击Generate,就可以在前面设定的目录下看到生成的包,在包内可以看到xml文件。