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

来源:互联网 发布:手机淘宝改差评链接 编辑:程序博客网 时间:2024/05/24 15:36

在使用Hibernate的时候,过多的Hibernate配置文件是一个让人头疼的问题。最近接触了Xdoclet这个工具。它实际上就是一个自动代码生成的工具,Xdoclet不能单独运行,必须搭配其他工具一起使用,比如ant。如果ant的工具不会用,建议先补充一下ant的基本知识在来学习Xdoclet。

        首先保证本机器上的ant是可用的。

2.下载Xdoclet,解压。

3.在ant的build.xml中定义xdoclet任务

在这里我们做的是根据hibernate实体类生成hibernate映射文件,所以得先有Hibernate的实体类。

/** * @hibernate.class * table="T_Party" */public class Party {/** * @hibernate.id  * generator-class="native"  */private int id;/** * @hibernate.many-to-one * column="parentid"   */private Party parent;/** * @hibernate.set * @hibernate.key  *   column = "parentid" * @hibernate.one-to-many * class = "com.bjsxt.oa.model.Party" */private Set children;/** * @hibernate.property * column="thename" */private String name;/** * @hibernate.property */private String sn;/** * @hibernate.property */private String description; /** *  * @return */public Set getChildren() {return children;}public void setChildren(Set children) {this.children = children;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}/** */public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Party getParent() {return parent;}public void setParent(Party parent) {this.parent = parent;}public String getSn() {return sn;}public void setSn(String sn) {this.sn = sn;}}

         在实体类上加上相应的注解后,在ant中定义一个新的xdoclet任务。


<?xml version="1.0" encoding="GBK"?><project name="系统构建脚本" default="生成Hibernate配置文件" basedir=".">   <property name="src.dir" value="${basedir}/src"/>   <property name="build.dir" value="${basedir}/bin"/><property name="webapp.dir" value="${basedir}/src/webapp"/><property name="xdoclet.home" value="E:\xdoclet-plugins-1.0.3"/>   <!-- Build classpath -->   <path id="xdoclet.task.classpath">      <fileset dir="${xdoclet.home}/lib">         <include name="**/*.jar"/>      </fileset>      <fileset dir="${xdoclet.home}/plugins">         <include name="**/*.jar"/>      </fileset>   </path><taskdef name="xdoclet"classname="org.xdoclet.ant.XDocletTask"classpathref="xdoclet.task.classpath"/><target name="生成Hibernate配置文件"><xdoclet><fileset dir="${src.dir}/com/bjsxt/oa/model"><include name="**/*.java"/></fileset><componentclassname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"destdir="${src.dir}"version="3.0"hbm2ddlauto="update"jdbcurl="jdbc:mysql://127.0.0.1/oa"jdbcdriver="com.mysql.jdbc.Driver"jdbcusername="root"jdbcpassword="mysql"dialect="org.hibernate.dialect.MySQLDialect"showsql="true"/></xdoclet></target><target name="生成hibernate映射文件"><xdoclet><fileset dir="${src.dir}/com/bjsxt/oa/model"><include name="**/*.java"/></fileset><component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"version="3.0"destdir="${src.dir}"/></xdoclet></target></project>

 

可以看到在ant中定义了两个任务,即生成hibernate映射文件和hibernate配置文件。配置完毕后,直接运行即可生成相应的配置文件。