【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
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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

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
}

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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

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,并运行其两个功能项,刷新项目目录
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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53




刷新项目目录后的项目目录结构如下:

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
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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>
以上代码语法请自行查找资料学习,在此不作详细介绍。
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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/
相关推荐
本篇文章将详细介绍如何使用Ant和XDoclet来生成Hibernate的HBM(Hibernate Mapping)文件。 首先,Ant是一个基于Java的构建工具,它允许开发者通过XML配置文件来定义构建过程,包括编译、打包、测试等任务。Ant的...
XDoclet则在Javadoc注释的基础上,根据预设的模板自动生成Hibernate所需的配置文件和实体类,大大减少了手动编写这些文件的工作量。 在实际开发中,这个组合的使用可以显著提高开发效率,减少重复劳动,尤其是对于...
**XDoclet** 是一个文档生成和代码生成工具,它可以自动根据Java源代码中的特定注解生成各种配置文件,如Hibernate的映射文件、EJB的部署描述符等。这减少了手动维护配置文件的工作量,提高了开发效率。 **Ant** 是...
为了生成Hibernate配置文件,我们需要编写一个Ant脚本来调用Xdoclet。这里是一个简单的示例脚本: ```xml <property name="doclet.dir" value="target/xdoclet"/> ${src.dir}" includes="**/*.class"/> $...
在Java类中,我们只需要添加适当的Javadoc注释,Xdoclet就会根据这些注释生成对应的.hbm.xml映射文件和Hibernate配置文件。而Ant则负责编译源代码、运行Xdoclet以及执行其他构建任务。 具体步骤如下: 1. **设置...
XDoclet是一款强大的Java代码生成工具,它通过解析Java源代码中的特定注解(annotations),自动生成各种元数据,如EJB组件接口、Hibernate映射文件、Struts配置文件等。XDoclet 1.2是该工具的一个版本,带来了许多...
为了解决这一问题,XDoclet应运而生,它是一款自动化工具,能够根据Java源代码自动生成Hibernate所需的映射文件和SQL语句。 XDoclet是基于Javadoc的元数据处理工具,它通过读取Java源代码中的特定注解,自动生成...
* 自动生成配置文件:Xdoclet 可以根据 Java 代码生成对应的配置文件,减少手动编写配置文件的工作量。 * 提高开发效率:Xdoclet 可以自动化生成配置文件,提高开发效率和质量。 * 简化项目维护:Xdoclet 可以简化...
Xdoclet则是Java中用于自动生成代码和部署描述符的工具,它通过解析源代码中的特定注解(Javadoc标签),生成对应的Struts配置文件、Hibernate映射文件或EJB组件代码。这大大减少了手动编写这些文件的工作量,使...
XDoclet是一个基于JavaDoc的代码生成工具,它可以自动根据Java源代码中的特定注解生成如EJB接口、Hibernate映射文件、Spring配置文件等。在本示例中,XDoclet可能被用来自动生成Spring配置和Web服务相关的接口及实现...
请把这个文件解压后方到一个盘下面.在build.xml中的 <property name="xdoclet.home" value="D:/jarpackage/xdoclet-plugins-1.0.3"/> 指出这个文件存放的位置....在构建域对象的时候一定要指明在配置文件中的配置信息..
XDoclet 是一款强大的Java注解处理工具,它允许开发者在Java源代码中添加元数据,这些元数据可以用来自动生成各种配置文件,包括Hibernate的映射文件(hbm.xml)。这种方式极大地提高了开发效率,避免了手动创建和...
在“XDoclet插件包以及从Java持久化类生成hibernate mapping小例子”中,我们重点关注的是如何通过XDoclet从Java持久化类生成与Hibernate相关的配置文件。首先,我们需要在Java类中添加特定的XDoclet注解,这些注解...
为了解决这一问题,Xdoclet应运而生,它是一种基于Javadoc注解的工具,能够自动生成Hibernate所需的*.hbm.xml映射文件,极大地提高了开发效率。 一、Xdoclet概述 Xdoclet是一个强大的Javadoc扩展工具,它通过解析...
* 自动生成代码和配置文件 * 支持 Java 代码结构的解析和理解 * 支持 Apache Ant 集成 * 支持模板生成和自定义标签 * 支持生成部署描述符和源代码 XDoclet 的应用场景包括: * 自动生成 EJB 的部署描述符 * 自动...
而Xdoclet则是用于自动生成Java源代码和配置文件的工具,它能够根据注释自动创建Hibernate所需的XML配置文件,比如`hibernate.cfg.xml`和`*.hbm.xml`。在早期,Xdoclet广泛用于简化Hibernate项目,避免手动编写大量...
**XDoclet** 是一个文档生成工具,它可以基于Javadoc注释自动生成代码文档或其他类型的元数据,如XML配置文件。 ### 六、视频教程内容概述 根据提供的部分内容列表可以看出,这套视频教程覆盖了从基础的框架介绍到...
XDoclet提供了多种目标,如`xdoclet-ejb-jar`用于生成EJB相关的文件,`xdoclet-hibernate`用于生成Hibernate相关的文件。配置完成后,执行Ant构建时,XDoclet会自动运行并生成所需的元数据文件。 总结,XDoclet API...
- **Ant build文件**:编写Ant脚本以自动化生成映射文件及数据表。需将所需的JAR包放置在`WebRoot/WEB-INF/lib/`目录下。 - **执行命令**:在命令行中运行Ant脚本,完成映射文件和数据表的生成。 ##### 4. 反身关联...