使用Ant + XDoclet2生成和管理Hibernate3的配置及映射文件

J2EE   2008-10-18 17:01   阅读278   评论0  
字号:    

以前Hibernate的配置文件和映射文件都是手写,和model实体类是单独分开的,当实体类太多的时候不怎么好管理,在这种情况下,XDoclet2起到了很好的作用,它使用Annotation的方式直接将需要生成hbm.xml文件的元素写在实体类java文件的注释中,然后通过Ant自动生成实体类的Hibernate映射文件,好了,直接看程序吧。

首先是Ant和XDoclet2的下载:

apache-ant-1.7.1-bin.zip 下载地址:http://www.apache.org

xdoclet-plugins-dist-1.0.4-bin.zip 下载地址:http://xdoclet.codehaus.org/

第一步:Ant的使用先简单介绍一下吧,解压后,将解压目录设置到环境变量ANT_HOME(确保JAVA_HOME有效),然后在path中添加%ANT_HOME%\bin,这时在cmd中运行ant命令,如果不提示ant为无效命令,就说明Ant已经可以正常使用了!这个时候就可以写一个build.xml文件(参见ant的帮助文档),然后进入cmd,转至build.xml文件所在目录,直接运行ant命令就可以完成build.xml中定义的Task了。

第二步:在确保了Ant可用后,可以把Xdoclet2解压,然后在MyEclipse中new一个新的project,首先编写一个测试的model实体类,注意,在类和属性前的注释中加入Xdoclet的Annotation,如下:

User.java

package com.bluesun.oa.model;

/**

*

* @author Lings

* @hibernate.class table="t_user"

*/

public class User {

/**

* @hibernate.id

*    generator-class="native"

*/

private Integer id;

/**

* @hibernate.property

*    column="username"

*/

private String username;

/**

* @hibernate.property

*/

private String password;

public Integer getId() {

   return id;

}

public void setId(Integer id) {

   this.id = id;

}

public String getUsername() {

   return username;

}

public void setUsername(String username) {

   this.username = username;

}

public String getPassword() {

   return password;

}

public void setPassword(String password) {

   this.password = password;

}

}

第三步:在project根目录下新建一个build.xml文件,内容如下:

build.xml

<?xml version="1.0" encoding="GBK"?>

<project name="OA系统构建脚本" default="生成Hibernate配置文件" basedir=".">

    <property name="src.dir" value="${basedir}/src"/>

    <property name="xdoclet.home" value="D:/Program Files/xdoclet-plugins-dist-1.0.4"/>

<!-- build classpath -->

    <path id="xdoclet.class.path">

        <fileset dir="${xdoclet.home}/lib">

            <include name="**/*.jar"/>

        </fileset>

    </path>

    <taskdef

   name="xdoclet"

   classname="org.xdoclet.ant.XDocletTask"

   classpathref="xdoclet.class.path"

    />

    <target name="生成Hibernate配置文件">

        <xdoclet>

            <fileset dir="${src.dir}/com/bluesun/oa/model">

                <include name="**/*.java"/>

            </fileset>

            <component

                    classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"

                    destdir="${src.dir}"

                    version="3.0"

      jdbcurl="jdbc:mysql://localhost:3306/oa"

      jdbcdriver="org.gjt.mm.mysql.Driver"

      jdbcusername="root"

      jdbcpassword="123456"

      dialect="org.hibernate.dialect.MySQLDialect"

      showsql="true"

    />

        </xdoclet>

    </target>

    <target name="生成Hibernate映射文件">

        <xdoclet>

            <fileset dir="${src.dir}/com/bluesun/oa/model">

                <include name="**/*.java"/>

            </fileset>

            <component

                    classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"

                    version="3.0"

      destdir="${src.dir}"

    />

        </xdoclet>

    </target>

</project>

第四步:在MyEclipse中Window->showView->Ant,在Ant视图中添加build.xml,然后运行对应的Target("生成Hibernate配置文件","生成Hibernate映射文件"),搞定!刷新project,就可以看到生成的hibernate.cfg.xml 和User.hbm.xml 文件,感觉是不是方便很多呢,想象一下,把hbm放到实体类中,当类多的时候,无论实体类怎么变,只需要重新Ant一下就搞定了,再不用一个一个的改hbm.xml文件了。

评论(?)
阅读(?)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009