使用xdoclet辅助Hibernate开发提高工作效率

 做Hibernate应用的开发,肯定会设计到pojo的映射文件的编写,当设计到大量的pojo时,维护映射文件变成了一件相当困难的事情,因为要保持pojo和映射文件的同步,很可能就会出错. 如果采用xdoclet那么就可以很方便的保持它们之间的同步,进一步提高工作效率.

   这里举一个简单的使用xdoclet生成映射文件的例子:

  首先需要使用的包:

1.xdoclet-1.2.3.jar /xjavadoc.jar /xdoclet-hibernate-module-1.2.3.jar

2.ant相关的包

首先,建立ant配置文件(一旦建立,之后就可以在项目中不用更改了)

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="XDoclet Examples" default="compile" basedir=".">
    
    
<property file="config.properties"/>

    
<!-- =================================================================== -->
    
<!-- Define the class path                                               -->
    
<!-- =================================================================== -->
    
<path id="samples.class.path">
        
<fileset dir="lib.dir ">
            
<include name="*.jar"/>
        
</fileset>
    
</path>

    
<!-- =================================================================== -->
    
<!-- Initialise                                                          -->
    
<!-- =================================================================== -->
    
<target name="init">
        
<tstamp>
            
<format property="TODAY" pattern="d-MM-yy"/>
        
</tstamp>  
       
<!-这里很关键,一般来说除了classpathref会修改之外,其他不用修改->
         
<taskdef
            
name="hibernatedoclet"
            classname
="xdoclet.modules.hibernate.HibernateDocletTask"
             classpathref
="samples.class.path"
            
/>
    
</target>

   

    
<!-- =================================================================== -->
    
<!-- Invoke XDoclet's hibernate                                          -->
    
<!-- =================================================================== -->
    
<target name="hibernate" depends="init" description="Generate mapping documents (run jar first)">

        
<echo>+---------------------------------------------------+</echo>
        
<echo>|                                                   |</echo>
        
<echo>| R U N N I N G   H I B E R N A T E D O C L E T     |</echo>
        
<echo>|                                                   |</echo>
        
<echo>+---------------------------------------------------+</echo>
        
<!-这里也是比较关键的地方->
        
<hibernatedoclet
            
destdir="${basedir}"
            excludedtags
="@version,@author,@todo,@see"
            addedtags
="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}"
            force
="true"
            verbose
="false">

            
<fileset dir="${basedir}">
                
<include name="kkvo.java"/>
            
</fileset>

            
<hibernate version="3.0"/>

        
</hibernatedoclet>
    
</target>

    
<!-- =================================================================== -->
    
<!-- Compiles all the classes                                            -->
    
<!-- =================================================================== -->

    
<target name="compile" depends="hibernate">

        
<echo>+---------------------------------------------------+</echo>
        
<echo>|                                                   |</echo>
        
<echo>| C O M P I L I N G   S O U R C E S                 |</echo>
        
<echo>|                                                   |</echo>
        
<echo>+---------------------------------------------------+</echo>

        
<javac
            
destdir="${basedir}"
            classpathref
="${basedir}"
            debug
="on"
            deprecation
="on"
            optimize
="off"
            
>

            
<src path="${basedir}"/>

        
</javac>

    
</target>


    
<!-- =================================================================== -->
    
<!-- Clean                                                               -->
    
<!-- =================================================================== -->
    
<target name="clean">
        
<delete dir="${samples.dist.dir}"/>
    
</target>

</project>

然后,我就可以建立自己的pojo了:

 

/**
 * 
@author Administrator
 * @hibernate.class table="testTable" 
 *                  dynamic-insert="true"
 *                  dynamic-update="true"
 * 
 
*/

public class kkvo {
    Integer id;

    String name;

    
/**
     * @hibernate.id generator-class="native" 
     *                column="id" 
     *                type="int"
     * 
     * 
     * 
@return the id
     
*/

    
public Integer getId() {
        
return id;
    }


    
/**
     * 
@param id
     *            the id to set
     
*/

    
public void setId(Integer id) {
        
this.id = id;

    }


    
/**
     * @hibernate.property column="name" 
     *                     type="integer" 
     *                     not-null="true"
     * 
@return the name
     
*/

    
public String getName() {
        
return name;
    }


    
/**
     * 
@param name
     *            the name to set
     
*/

    
public void setName(String name) {
        
this.name = name;
    }

}

 

最后,通过ant命令就可以生成该pojo的映射文件,很是方便

posted @ 2007-04-03 16:25  lovingprince  阅读(309)  评论(0编辑  收藏  举报