ANT+Xdoclet自动生成Hibernate配置文件

【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/
FROM:http://www.cnitblog.com/intrl/archive/2009/04/13/56321.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值