做Hibernate应用的开发,肯定会设计到pojo的映射文件的编写,当设计到大量的pojo时,维护映射文件变成了一件相当困难的事情,因为要保持pojo和映射文件的同步,很可能就会出错. 如果采用xdoclet那么就可以很方便的保持它们之间的同步,进一步提高工作效率.
这里举一个简单的使用xdoclet生成映射文件的例子:
首先需要使用的包:
1.xdoclet-1.2.3.jar /xjavadoc.jar /xdoclet-hibernate-module-1.2.3.jar
2.ant相关的包
首先,建立ant配置文件(一旦建立,之后就可以在项目中不用更改了)
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<projectname="XDocletExamples"default="compile"basedir=".">
<propertyfile="config.properties"/>
<!--===================================================================-->
<!--Definetheclasspath-->
<!--===================================================================-->
<pathid="samples.class.path">
<filesetdir="lib.dir">
<includename="*.jar"/>
</fileset>
</path>
<!--===================================================================-->
<!--Initialise-->
<!--===================================================================-->
<targetname="init">
<tstamp>
<formatproperty="TODAY"pattern="d-MM-yy"/>
</tstamp>
<!-这里很关键,一般来说除了classpathref会修改之外,其他不用修改->
<taskdef
name="hibernatedoclet"
classname="xdoclet.modules.hibernate.HibernateDocletTask"
classpathref="samples.class.path"
/>
</target>


<!--===================================================================-->
<!--InvokeXDoclet'shibernate-->
<!--===================================================================-->
<targetname="hibernate"depends="init"description="Generatemappingdocuments(runjarfirst)">
<echo>+---------------------------------------------------+</echo>
<echo>||</echo>
<echo>|RUNNINGHIBERNATEDOCLET|</echo>
<echo>||</echo>
<echo>+---------------------------------------------------+</echo>
<!-这里也是比较关键的地方->
<hibernatedoclet
destdir="${basedir}"
excludedtags="@version,@author,@todo,@see"
addedtags="@xdoclet-generatedat${TODAY},@copyrightTheXDocletTeam,@authorXDoclet,@version${version}"
force="true"
verbose="false">
<filesetdir="${basedir}">
<includename="kkvo.java"/>
</fileset>
<hibernateversion="3.0"/>
</hibernatedoclet>
</target>
<!--===================================================================-->
<!--Compilesalltheclasses-->
<!--===================================================================-->
<targetname="compile"depends="hibernate">
<echo>+---------------------------------------------------+</echo>
<echo>||</echo>
<echo>|COMPILINGSOURCES|</echo>
<echo>||</echo>
<echo>+---------------------------------------------------+</echo>
<javac
destdir="${basedir}"
classpathref="${basedir}"
debug="on"
deprecation="on"
optimize="off"
>
<srcpath="${basedir}"/>
</javac>
</target>

<!--===================================================================-->
<!--Clean-->
<!--===================================================================-->
<targetname="clean">
<deletedir="${samples.dist.dir}"/>
</target>
</project>
然后,我就可以建立自己的pojo了:

/***//**
*@authorAdministrator
*@hibernate.classtable="testTable"
*dynamic-insert="true"
*dynamic-update="true"
*
*/
publicclasskkvo...{
Integerid;
Stringname;

/***//**
*@hibernate.idgenerator-class="native"
*column="id"
*type="int"
*
*
*@returntheid
*/
publicIntegergetId()...{
returnid;
}

/***//**
*@paramid
*theidtoset
*/
publicvoidsetId(Integerid)...{
this.id=id;
}

/***//**
*@hibernate.propertycolumn="name"
*type="integer"
*not-null="true"
*@returnthename
*/
publicStringgetName()...{
returnname;
}

/***//**
*@paramname
*thenametoset
*/
publicvoidsetName(Stringname)...{
this.name=name;
}
}
最后,通过ant命令就可以生成该pojo的映射文件,很是方便
本文介绍如何使用XDoclet工具自动生成Hibernate映射文件,以简化大量POJO对象映射文件的维护工作。文章提供了一个具体的例子,包括Ant配置文件的设置及POJO类的注释规范。
74

被折叠的 条评论
为什么被折叠?



