在Myeclipse中使用xdoclet生成映射文件及hibernate所有注解全

在MyEclipse中利用XDoclet自动生成Hibernate配置和映射文件

在使用Hibernate框架时,如果实体类一多,在映射文件中需要配置的映射就会增多,如果手工做的话,经常会出现写错的情况,利用XDoclet工具可以自动地生成映射文件和配置文件,只要注解写正确了几乎避免了出错的可能。

XDoclet基于ant,先要下解压ant,配置好ant的环境变量才能使用XDoclet。在ant已经配置好后,下载XDoclet-pliugins-1.03.zip包,解压到某个目录即可使用(这里解压到D:\)

在MyEclipse中使用XDoclet的基本步骤:

1、建立ant脚本build.xml

<?xmlversion="1.0"encoding="GBK"?>

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

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

<propertyname="xdoclet.home"value="D:/xdoclet-plugins-1.0.3"/>

<!--Buildclasspath-->

<pathid="xdoclet.task.classpath">

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

<includename="**/*.jar"/>

</fileset>

<filesetdir="${xdoclet.home}/plugins">

<includename="**/*.jar"/>

</fileset>

</path>

<taskdef

name="xdoclet"

classname="org.xdoclet.ant.XDocletTask"

classpathref="xdoclet.task.classpath"

/>

<targetname="生成Hibernate配置文件">

<xdoclet>

<filesetdir="${src.dir}/org/zc/xdoclet/model">

<includename="**/*.java"/>

</fileset>

<component

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

destdir="${src.dir}"

version="3.0"

hbm2ddlauto="update"

jdbcurl="jdbc:mysql://127.0.0.1/xdoclettest"

jdbcdriver="com.mysql.jdbc.Driver"

jdbcusername="root"

jdbcpassword="root"

dialect="org.hibernate.dialect.MySQLDialect"

showsql="true"

/>

</xdoclet>

</target>

<targetname="生成hibernate映射文件">

<xdoclet>

<filesetdir="${src.dir}/org/zc/xdoclet/model">

<includename="**/*.java"/>

</fileset>

<component

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

version="3.0"

destdir="${src.dir}"

/>

</xdoclet>

</target>

</project>

说明:

注释<!--Buildclasspath-->以上的脚本意图在找到xdoclet的目录,

注释以下的内容主要做了以下三件事:

①找到并导入xdoclet下的所有jar包;

②自定义脚本生成Hibernate配置文件hibernate.cfg.xml,这里定义了数据库方言及一些常用的属性;

③自定义脚本生成Hibernate映射文件,根据已经写好了的含有xdoclet注解的java实体类自动生成映射文件。

2、定义实体类并写注解。

实体类User.java

packageorg.zc.xdoclet.model;

/**

*@authorpouger

*@hibernate.classtable="t_user"

*/

publicclassUser{

privateintid;

privateStringname;

privateStringpassword;

privateGroupgroup;

/**

*@hibernate.id

*generator-class="native"

*/

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

/**

*@hibernate.property

*/

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

/**

*@hibernate.property

*/

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

/**

*@hibernate.many-to-one

*/

publicGroupgetGroup(){

returngroup;

}

publicvoidsetGroup(Groupgroup){

this.group=group;

}

}

实体类Group.java

packageorg.zc.xdoclet.model;

/**

*@authorpouger

*@hibernate.classtable="t_group"

*/

publicclassGroup{

privateintid;

privateStringname;

/**

*@hibernate.id

*generator-class="native"

*/

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

/**

*@hibernate.property

*/

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

}

说明:

实体类中的注解(如@hibernate.property)用来标明映射文件的属性配置,包括生成的数据库表的名字、主键的生成方式、是否启用hbm2ddl、对象间的对应关系等。如果想要指定对象在数据库表中的字段值和类型,只需在实体类的注解中声明即可。

3、在MyEclipse中利用XDoclet自动生成Hibernate配置文件和映射文件

①在MyEclipse中加入XDoclet---

右击项目,依次打开properties>>MyEclipse>>XDoclet>>AddStandard…,选中StandardHibernate,点击OK即可加入XDoclet

②自动生成Hibernate配置文件和映射文件---

右击项目,点击MyEclipse>>RunXDoclet,即可生成配置文件和映射文件。

附hibernate所有注解标签,详细请查看:http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html,以供日后查看:

@hibernateTagReference

TagsfordeclarationofHibernatedescriptorfile

Appliesto:Allclasses,atclasslevelandongettermethods

@hibernateClassLevelTags

@hibernate.cache

@hibernate.class

@hibernate.discriminator

@hibernate.jcs-cache

@hibernate.joined-subclass

@hibernate.joined-subclass-key

@hibernate.mapping

@hibernate.query

@hibernate.subclass

@hibernateMethodLevelTags

@hibernate.any

@hibernate.any-column

@hibernate.array

@hibernate.bag

@hibernate.collection-cache

@hibernate.collection-composite-element

@hibernate.collection-element

@hibernate.collection-index

@hibernate.collection-jcs-cache

@hibernate.collection-key

@hibernate.collection-key-column

@hibernate.collection-many-to-many

@hibernate.collection-one-to-many

@hibernate.column

@hibernate.component

@hibernate.generator-param

@hibernate.id

@hibernate.index-many-to-many

@hibernate.list

@hibernate.many-to-any

@hibernate.many-to-any-column

@hibernate.many-to-one

@hibernate.map

@hibernate.one-to-one

@hibernate.parent

@hibernate.primitive-array

@hibernate.property

@hibernate.set

@hibernate.timestamp

@hibernate.version

@hibernateFieldLevelTags

相关推荐