[转]【Java EE】ANT+Xdoclet自动生成Hibernate配置文件

1、下载Xdoclet,网址:http://xdoclet.sourceforge.net/,解压
2、新建包com.test.model,存放实体类Group,User
Group.java
 1package com.test.model;
 2
 3import java.util.Set;
 4
 5/**
 6 * 
 7 * @author Administrator
 8 *@hibernate.class table="t_group"
 9 */

10public 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
  1package com.test.model;
  2
  3import java.util.Date;
  4
  5/**
  6 * 
  7 * @author Administrator
  8 *@hibernate.class table="t_user"
  9 */

 10public 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

只有注册用户登录后才能发表评论。
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

相册

友情连接

搜索

最新评论

阅读排行榜

评论排行榜