当前位置: 代码迷 >> Eclipse >> 在Myeclipse中应用xdoclet生成映射文件及hibernate所有注解全
  详细解决方案

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

热度:7   发布时间:2016-04-23 12:39:18.0
在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



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

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



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

    <property name="xdoclet.home" value="D:/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}/org/zc/xdoclet/model">

              <include name="**/*.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>

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

       <xdoclet>

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

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

           </fileset>

           <component

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

              version="3.0"

              destdir="${src.dir}"

           />

       </xdoclet>

    </target>

</project>

说明:

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

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

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

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

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


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

实体类User.java

package org.zc.xdoclet.model;

/**

* @author pouger

* @hibernate.class table="t_user"

*/

public class User {

    private int id;

    private String name;

    private String password;

    private Group group;



    /**

     * @hibernate.id

     *      generator-class="native"

     */

    public int getId() {

       return id;

    }

    public void setId(int id) {

       this.id = id;

    }

    /**

     *@hibernate.property

     */

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    /**

     *@hibernate.property

     */

    public String getPassword() {

       return password;

    }

    public void setPassword(String password) {

       this.password = password;

    }

    /**

     *@hibernate.many-to-one

     */

    public Group getGroup() {

       return group;

    }

    public void setGroup(Group group) {

       this.group = group;

    }

}



实体类Group.java

package org.zc.xdoclet.model;



/**

* @author pouger

* @hibernate.class table="t_group"

*/

public class Group {

    private int id;

    private String name;



    /**

     * @hibernate.id

     *      generator-class="native"

     */

    public int getId() {

       return id;

    }

    public void setId(int id) {

       this.id = id;

    }

    /**

     * @hibernate.property

     */

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

}



说明:

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



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

①        在MyEclipse中加入XDoclet---

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

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

右击项目,点击MyEclipse >> Run XDoclet ,即可生成配置文件和映射文件。
附hibernate所有注解标签,详细请查看:http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html,以供日后查看:

@hibernate Tag Reference
Tags for declaration of Hibernate descriptor file

Applies to: All classes, at class level and on getter methods

@hibernate Class Level Tags
@hibernate.cache

@hibernate.class

@hibernate.discriminator

@hibernate.jcs-cache

@hibernate.joined-subclass

@hibernate.joined-subclass-key

@hibernate.mapping

@hibernate.query

@hibernate.subclass


@hibernate Method Level Tags
@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


@hibernate Field Level Tags

  相关解决方案