无业бю游民
hobo
[转]【Java EE】ANT+Xdoclet自动生成Hibernate配置文件
1、下载Xdoclet,网址:
http://xdoclet.sourceforge.net/
,解压
2、新建包com.test.model,存放实体类Group,User
Group.java
1
package
com.test.model;
2
3
import
java.util.Set;
4
5
/** */
/**
6
*
7
*
@author
Administrator
8
*@hibernate.class table="t_group"
9
*/
10
public
class
Group
{
11
/** */
/**
12
* @hibernate.id
13
* generator-class="native"
14
*/
15
private
int
groupid;
16
/** */
/**
17
* @hibernate.property
18
*/
19
private
String groupname;
20
/** */
/**
21
* @hibernate.property
22
*/
23
private
String remark;
24
25
/** */
/**
26
* @hibernate.set
27
* inverse="true"
28
* @hibernate.key column="groupid"
29
* @hibernate.one-to-many
30
* class="com.test.model.User"
31
*/
32
private
Set
<
User
>
users;
33
public
int
getGroupid()
{
34
return
groupid;
35
}
36
37
public
void
setGroupid(
int
groupid)
{
38
this
.groupid
=
groupid;
39
}
40
41
public
String getGroupname()
{
42
return
groupname;
43
}
44
45
public
void
setGroupname(String groupname)
{
46
this
.groupname
=
groupname;
47
}
48
49
public
String getRemark()
{
50
return
remark;
51
}
52
53
public
void
setRemark(String remark)
{
54
this
.remark
=
remark;
55
}
56
57
public
Set
<
User
>
getUsers()
{
58
return
users;
59
}
60
61
public
void
setUsers(Set
<
User
>
users)
{
62
this
.users
=
users;
63
}
64
65
}
User.java
1
package
com.test.model;
2
3
import
java.util.Date;
4
5
/** */
/**
6
*
7
*
@author
Administrator
8
*@hibernate.class table="t_user"
9
*/
10
public
class
User
{
11
/** */
/**
12
* @hibernate.id
13
* generator-class="native"
14
*/
15
private
int
userid;
16
/** */
/**
17
* @hibernate.property
18
*/
19
private
String username;
20
/** */
/**
21
* @hibernate.many-to-one
22
* column="groupid"
23
* cascade="all"
24
* class="com.test.model.Group"
25
*/
26
private
Group group;
27
/** */
/**
28
* @hibernate.property
29
*/
30
private
String password;
31
/** */
/**
32
* @hibernate.property
33
*/
34
private
String email;
35
/** */
/**
36
* @hibernate.property
37
*/
38
private
String question;
39
/** */
/**
40
* @hibernate.property
41
*/
42
private
String answer;
43
/** */
/**
44
* @hibernate.property
45
*/
46
private
Date createtime;
47
/** */
/**
48
* @hibernate.property
49
*/
50
private
int
status;
51
52
public
String getEmail()
{
53
return
email;
54
}
55
56
public
void
setEmail(String email)
{
57
this
.email
=
email;
58
}
59
60
public
String getQuestion()
{
61
return
question;
62
}
63
64
public
void
setQuestion(String question)
{
65
this
.question
=
question;
66
}
67
68
public
String getAnswer()
{
69
return
answer;
70
}
71
72
public
void
setAnswer(String answer)
{
73
this
.answer
=
answer;
74
}
75
76
public
Date getCreatetime()
{
77
return
createtime;
78
}
79
80
public
void
setCreatetime(Date createtime)
{
81
this
.createtime
=
createtime;
82
}
83
84
public
int
getStatus()
{
85
return
status;
86
}
87
88
public
void
setStatus(
int
status)
{
89
this
.status
=
status;
90
}
91
92
public
int
getUserid()
{
93
return
userid;
94
}
95
96
public
void
setUserid(
int
userid)
{
97
this
.userid
=
userid;
98
}
99
100
public
String getUsername()
{
101
return
username;
102
}
103
104
public
void
setUsername(String username)
{
105
this
.username
=
username;
106
}
107
108
public
String getPassword()
{
109
return
password;
110
}
111
112
public
void
setPassword(String password)
{
113
this
.password
=
password;
114
}
115
116
public
Group getGroup()
{
117
return
group;
118
}
119
120
public
void
setGroup(Group group)
{
121
this
.group
=
group;
122
}
123
124
125
}
3、在test目录下建立build.xml,其中
<
property
name
="xdoclet.home"
value
="C:/xdoclet-plugins-dist-1.0.4"
/>
为你所解压的xdoclet目录。
1
<?
xml version="1.0" encoding="GBK"
?>
2
<
project
name
="test系统构建脚本"
default
="生成Hibernate配置文件"
basedir
="."
>
3
4
<
property
name
="src.dir"
value
="${basedir}/src"
/>
5
<
property
name
="xdoclet.home"
value
="C:/xdoclet-plugins-dist-1.0.4"
/>
6
7
<!--
build classpath
-->
8
<
path
id
="xdoclet.task.classpath"
>
9
<
fileset
dir
="${xdoclet.home}/lib"
>
10
<
include
name
="**/*.jar"
/>
11
</
fileset
>
12
</
path
>
13
14
<
taskdef
15
name
="xdoclet"
16
classname
="org.xdoclet.ant.XDocletTask"
17
classpathref
="xdoclet.task.classpath"
18
/>
19
20
<
target
name
="生成Hibernate配置文件"
>
21
<
xdoclet
>
22
<
fileset
dir
="${src.dir}/com/test/model"
>
23
<
include
name
="**/*.java"
/>
24
</
fileset
>
25
<
component
26
classname
="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
27
destdir
="${src.dir}"
28
version
="3.0"
29
hbm2ddlauto
="update"
30
jdbcurl
="jdbc:mysql://localhost/test"
31
jdbcdriver
="com.mysql.jdbc.Driver"
32
jdbcusername
="root"
33
jdbcpassword
="intrl"
34
dialect
="org.hibernate.dialect.MySQLDialect"
35
showsql
="true"
36
/>
37
</
xdoclet
>
38
</
target
>
39
40
<
target
name
="生成hibernate映射文件"
>
41
<
xdoclet
>
42
<
fileset
dir
="${src.dir}/com/test/model"
>
43
<
include
name
="**/*.java"
/>
44
</
fileset
>
45
<
component
46
classname
="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
47
version
="3.0"
48
destdir
="${src.dir}"
49
/>
50
</
xdoclet
>
51
</
target
>
52
53
</
project
>
4、在MyEclipse中配置ANT,添加刚才所建立的build.xml,并运行其两个功能项,刷新项目目录
刷新项目目录后的项目目录结构如下:
Group.hbm.xml
1
<?
xml version="1.0" encoding="ISO-8859-1"
?>
2
<!
DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
3
4
<
hibernate-mapping
>
5
<
class
table
="t_group"
name
="com.test.model.Group"
>
6
<
id
access
="field"
name
="groupid"
>
7
<
generator
class
="native"
/>
8
</
id
>
9
<
property
name
="groupname"
access
="field"
/>
10
<
property
name
="remark"
access
="field"
/>
11
<
set
inverse
="true"
access
="field"
name
="users"
>
12
<
key
column
="groupid"
/>
13
<
one-to-many
class
="com.test.model.User"
/>
14
</
set
>
15
</
class
>
16
</
hibernate-mapping
>
User.hbm.xml
1
<?
xml version="1.0" encoding="ISO-8859-1"
?>
2
<!
DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
3
4
<
hibernate-mapping
>
5
<
class
table
="t_user"
name
="com.test.model.User"
>
6
<
id
access
="field"
name
="userid"
>
7
<
generator
class
="native"
/>
8
</
id
>
9
<
property
name
="username"
access
="field"
/>
10
<
many-to-one
column
="groupid"
cascade
="all"
access
="field"
class
="com.test.model.Group"
name
="group"
/>
11
<
property
name
="password"
access
="field"
/>
12
<
property
name
="email"
access
="field"
/>
13
<
property
name
="question"
access
="field"
/>
14
<
property
name
="answer"
access
="field"
/>
15
<
property
name
="createtime"
access
="field"
/>
16
<
property
name
="status"
access
="field"
/>
17
</
class
>
18
</
hibernate-mapping
>
hibernate.cfg.xml
1
<?
xml version="1.0" encoding="ISO-8859-1"
?>
2
<!
DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
3
4
<
hibernate-configuration
>
5
<
session-factory
>
6
<
property
name
="hibernate.connection.driver_class"
>
com.mysql.jdbc.Driver
</
property
>
7
<
property
name
="hibernate.connection.url"
>
jdbc:mysql://localhost/test
</
property
>
8
<
property
name
="hibernate.connection.username"
>
root
</
property
>
9
<
property
name
="hibernate.connection.password"
>
intrl
</
property
>
10
<
property
name
="hibernate.dialect"
>
org.hibernate.dialect.MySQLDialect
</
property
>
11
<
property
name
="hibernate.show_sql"
>
true
</
property
>
12
<
property
name
="hibernate.hbm2ddl.auto"
>
update
</
property
>
13
<
mapping
resource
="com/test/model/Group.hbm.xml"
/>
14
<
mapping
resource
="com/test/model/User.hbm.xml"
/>
15
</
session-factory
>
16
</
hibernate-configuration
>
以上代码语法请自行查找资料学习,在此不作详细介绍。
5、资源下载
xdoclet-plugins-dist-1.0.4-bin.zip:
http://www.rayfile.com/files/f8462580-66f2-11de-8a67-0014221b798a/
apache-ant-1.7.1-bin.zip:
http://www.rayfile.com/files/78e4fa6e-66b6-11de-8110-0014221b798a/
posted on 2009-07-10 08:53
hobo
阅读(568)
评论(0)
编辑
收藏
引用
所属分类:
J2 EE
只有注册用户
登录
后才能发表评论。
Powered by:
IT博客
Copyright © hobo
<
2009年7月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
导航
IT博客
首页
新随笔
联系
聚合
管理
统计
随笔 - 49
文章 - 3
评论 - 58
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
.NET(6)
(rss)
ACM/ICPC_ 算法(1)
(rss)
ACM/ICPC_DP(动态规划)(1)
(rss)
ACM/ICPC_java用法(6)
(rss)
ACM/ICPC_博弈论(4)
(rss)
ACM/ICPC_数论(1)
(rss)
J2 EE(7)
(rss)
JavaScript(4)
(rss)
JAVA学习~~(5)
(rss)
web(4)
(rss)
数据库(8)
(rss)
文档写作(1)
(rss)
随笔档案
2009年11月 (7)
2009年10月 (1)
2009年9月 (1)
2009年7月 (14)
2008年10月 (2)
2008年9月 (5)
2008年8月 (7)
2008年6月 (2)
2008年5月 (3)
2008年4月 (7)
文章分类
ACM/ICPC_博弈论(3)
(rss)
文章档案
2008年4月 (3)
相册
初次比赛
友情连接
搜索
最新评论
1. re: asp上下滚动新闻代码
评论内容较长,点击标题查看
--老黄
2. re: [转]博弈论(一):Nim游戏
分析的不错!
--whilgeek
3. re: 关于base target="_self" 等
评论内容较长,点击标题查看
--paper writing service
4. re: 关于base target="_self" 等
评论内容较长,点击标题查看
--buy essays now
5. re: 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
学习,与其他的不一样,挺好的
--英国租房
阅读排行榜
1. javascript 保留小数位 (toFixed方法)(11784)
2. oracle 10g 安装完成后,无法登陆EM的解决办法(7784)
3. asp上下滚动新闻代码(5267)
4. java的对齐输出方式(4946)
5. 在jtable中显示数据库信息(4847)
评论排行榜
1. 关于base target="_self" 等(14)
2. struts2标签集(7)
3. 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码(5)
4. Struts2中Session的使用(4)
5. 转发和重定向的区别(3)