hibernate中的middlegen入门指南
目标:利用middlegen生产hbm.xml文件
工具:
1、middlegen-hibernate-r5 相关连接
2、hibernate-
3、hibernate-extensions-
4、xdoclet-bin-
5、ant-
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-
appdata=c:/documents and settings/administrator/application data
c51inc=d:/javawebstudio/c51/inc
c51lib=d:/javawebstudio/c51/lib
classpath=.;c:/java/jdk
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/jdk
logonserver=//smxsh
number_of_processors=1
os=windows_nt
path=.;c:/java/jdk
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-tomcat/
userdomain=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-
6、 将hibernate
注意:可能最后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-
<!—这里的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文件。
闽公网安备 35060202000074号