`

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

 
阅读更多

【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/
FROM:http://www.cnitblog.com/intrl/archive/2009/04/13/56321.html
分享到:
评论

相关推荐

    Ant+XDoclet生成hbm文件

    本篇文章将详细介绍如何使用Ant和XDoclet来生成Hibernate的HBM(Hibernate Mapping)文件。 首先,Ant是一个基于Java的构建工具,它允许开发者通过XML配置文件来定义构建过程,包括编译、打包、测试等任务。Ant的...

    ant+hibernate+xdoclet源码,文档,工具包.rar

    XDoclet则在Javadoc注释的基础上,根据预设的模板自动生成Hibernate所需的配置文件和实体类,大大减少了手动编写这些文件的工作量。 在实际开发中,这个组合的使用可以显著提高开发效率,减少重复劳动,尤其是对于...

    struts+hibernate+spring+xdoclet+ant+log4j

    **XDoclet** 是一个文档生成和代码生成工具,它可以自动根据Java源代码中的特定注解生成各种配置文件,如Hibernate的映射文件、EJB的部署描述符等。这减少了手动维护配置文件的工作量,提高了开发效率。 **Ant** 是...

    用maven的xdoclet插件t生成hibernate配置文件

    为了生成Hibernate配置文件,我们需要编写一个Ant脚本来调用Xdoclet。这里是一个简单的示例脚本: ```xml &lt;property name="doclet.dir" value="target/xdoclet"/&gt; ${src.dir}" includes="**/*.class"/&gt; $...

    Ant结合Xdoclet 实例教程(之整合 Hibernate)

    在Java类中,我们只需要添加适当的Javadoc注释,Xdoclet就会根据这些注释生成对应的.hbm.xml映射文件和Hibernate配置文件。而Ant则负责编译源代码、运行Xdoclet以及执行其他构建任务。 具体步骤如下: 1. **设置...

    pojo+xDoclet生成ibatis映射文件

    这种机制使得开发者能够在不离开 Java 代码的情况下,方便地指定所需的额外元数据,从而自动化生成配置文件等文档。 XDoclet 的核心思想是在 Java 代码中加入特定的 Javadoc 标签,例如 `@hibernate.class`、`@...

    XDoclet1.2+XDoclet教程

    XDoclet是一款强大的Java代码生成工具,它通过解析Java源代码中的特定注解(annotations),自动生成各种元数据,如EJB组件接口、Hibernate映射文件、Struts配置文件等。XDoclet 1.2是该工具的一个版本,带来了许多...

    Hibernate使用xdoclet生成映射文件和sql语句

    为了解决这一问题,XDoclet应运而生,它是一款自动化工具,能够根据Java源代码自动生成Hibernate所需的映射文件和SQL语句。 XDoclet是基于Javadoc的元数据处理工具,它通过读取Java源代码中的特定注解,自动生成...

    Xdoclet入门基础教程

    * 自动生成配置文件:Xdoclet 可以根据 Java 代码生成对应的配置文件,减少手动编写配置文件的工作量。 * 提高开发效率:Xdoclet 可以自动化生成配置文件,提高开发效率和质量。 * 简化项目维护:Xdoclet 可以简化...

    Ant结合Xdoclet 实例教程(之整合 struts)

    Xdoclet则是Java中用于自动生成代码和部署描述符的工具,它通过解析源代码中的特定注解(Javadoc标签),生成对应的Struts配置文件、Hibernate映射文件或EJB组件代码。这大大减少了手动编写这些文件的工作量,使...

    Weblogic92+CXF+XDoclet+Spring轻松搞定webservice 例子

    XDoclet是一个基于JavaDoc的代码生成工具,它可以自动根据Java源代码中的特定注解生成如EJB接口、Hibernate映射文件、Spring配置文件等。在本示例中,XDoclet可能被用来自动生成Spring配置和Web服务相关的接口及实现...

    ant hibernate mapping 生成映射文件 生成配置文件

    请把这个文件解压后方到一个盘下面.在build.xml中的 &lt;property name="xdoclet.home" value="D:/jarpackage/xdoclet-plugins-1.0.3"/&gt; 指出这个文件存放的位置....在构建域对象的时候一定要指明在配置文件中的配置信息..

    XDoclet 与Hibernate 映射

    XDoclet 是一款强大的Java注解处理工具,它允许开发者在Java源代码中添加元数据,这些元数据可以用来自动生成各种配置文件,包括Hibernate的映射文件(hbm.xml)。这种方式极大地提高了开发效率,避免了手动创建和...

    XDoclet插件包以及从Java持久化类生成hibernate mapping小例子

    在“XDoclet插件包以及从Java持久化类生成hibernate mapping小例子”中,我们重点关注的是如何通过XDoclet从Java持久化类生成与Hibernate相关的配置文件。首先,我们需要在Java类中添加特定的XDoclet注解,这些注解...

    Xdoclet生成*.hbm.xml映射文件

    为了解决这一问题,Xdoclet应运而生,它是一种基于Javadoc注解的工具,能够自动生成Hibernate所需的*.hbm.xml映射文件,极大地提高了开发效率。 一、Xdoclet概述 Xdoclet是一个强大的Javadoc扩展工具,它通过解析...

    精通代码生成器XDoclet.doc

    * 自动生成代码和配置文件 * 支持 Java 代码结构的解析和理解 * 支持 Apache Ant 集成 * 支持模板生成和自定义标签 * 支持生成部署描述符和源代码 XDoclet 的应用场景包括: * 自动生成 EJB 的部署描述符 * 自动...

    Hibernate 的Xdoclet模板

    而Xdoclet则是用于自动生成Java源代码和配置文件的工具,它能够根据注释自动创建Hibernate所需的XML配置文件,比如`hibernate.cfg.xml`和`*.hbm.xml`。在早期,Xdoclet广泛用于简化Hibernate项目,避免手动编写大量...

    struts+spring+hibernate整合办公OA系统全套视频下载地址

    **XDoclet** 是一个文档生成工具,它可以基于Javadoc注释自动生成代码文档或其他类型的元数据,如XML配置文件。 ### 六、视频教程内容概述 根据提供的部分内容列表可以看出,这套视频教程覆盖了从基础的框架介绍到...

    XDoclet Api

    XDoclet提供了多种目标,如`xdoclet-ejb-jar`用于生成EJB相关的文件,`xdoclet-hibernate`用于生成Hibernate相关的文件。配置完成后,执行Ant构建时,XDoclet会自动运行并生成所需的元数据文件。 总结,XDoclet API...

    新建 Micro用ant执行POJO自动生成映射文件及数据表soft Word 文档

    - **Ant build文件**:编写Ant脚本以自动化生成映射文件及数据表。需将所需的JAR包放置在`WebRoot/WEB-INF/lib/`目录下。 - **执行命令**:在命令行中运行Ant脚本,完成映射文件和数据表的生成。 ##### 4. 反身关联...

Global site tag (gtag.js) - Google Analytics