通过Ant+Xdoclet生成Hibernate配置文件和映射文件

         在上篇文章中,我们介绍了Ant的基本概念及其简单的使用方法,在文章的最后有一个例子用到了Xdoclet相关内容,本篇文章主要来介绍Xdoclet以及通过Ant+Xdoclet生成Hibernate配置文件和映射文件.

    Xdoclet基本概念

       我们可以在java代码中使用类似于javadoc的注释,来表达更多的内容。这些额外的注释,通过使用xdoclet工具,我们可以将它们转换为我们需要的各种配置文件。

    如何开始使用Xdoclet

        Xdoclet不是单独可以运行的工具(不像Ant工具),它可以与其它工具一起配合运行,如Ant。我们下面的例子就是基于Antxdoclet的。

     

    1. 首先需要保证ant是可用的
    2. 下载并解压xdoclet的包(我现在使用的是xdoclet2,具体版本是xdoclet-plugins-1.0.3)。
    3. java类添加hibernate标记

     

     

    package com.tgb.oa.model;
    
    /**
     * 
     * @oa_01 测试文件用来测试Xdoclet
     * @author jnqqls
     * @group TGB
     * @version 1.0
     * @comments
     * @hibernate.class table="T_User"
     */
    public class User {
    	/**
    	 * @return Returns the id.
    	 * @hibernate.id generator-class="native" column="id"
    	 * 
    	 */
    	private Integer id;
    	/**
    	 * @return Returns the password.
    	 * @hibernate.property column = "password"
    	 */
    
    	private String password;
    	/**
    	 * @return Returns the username.
    	 * @hibernate.property column = "username"
    	 */
    	private String username;
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    	public String getUsername() {
    		return username;
    	}
    
    	public void setUsername(String username) {
    		this.username = username;
    	}
    
    }
    

     

    这里用到了几种@hibernate标记的用法

    @hibernate.class标记指定类的映射代码,lazy="true" table="syn_dept"则如

    hibernate的映射文件class元素的属性值具有相同的意义

    @hibernate.id标记指定类的OID映射代码

    @hibernate.property标记指定类的属性映射代码

     

     

     

    1. ant构建工具中定义xdoclet任务,建立build.xml文件

     

    <?xml version="1.0" encoding="GBK"?>
    <project name="OA系统构建脚本" default="生成Hibernate配置文件" basedir=".">
    
       	<property name="src.dir" value="${basedir}/src"/>
       	<property name="build.dir" value="${basedir}/bin"/>
    	<property name="webapp.dir" value="${basedir}/WebContent"/>
    	<property name="xdoclet.home" value="D:\Environment\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}/com/tgb/oa/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/oa_01"
    				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}/com/tgb/oa/model">
    				<include name="**/*.java"/>
    			</fileset>
    			<component 
    				classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
    				version="3.0"
    				destdir="${src.dir}"
    			/>
    		</xdoclet>
    	</target>
    </project>
    

     

    1. 添加Ant视图,运行build.xml文件

    通过Ant+Xdoclet生成Hibernate配置文件和映射文件_第1张图片

     

    1. 运行构件脚本build.xml
    2. 生成的映射文件如下:

    	<?xml version="1.0" encoding="ISO-8859-1"?>
    	<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    	
    	<hibernate-mapping>
    	  <class table="T_User" name="com.tgb.oa.model.User">
    	    <id column="id" name="id">
    	      <generator class="native"/>
    	    </id>
    	    <property name="password" column="password"/>
    	    <property name="username" column="username"/>
    	  </class>
    	</hibernate-mapping>
    

     

     

    1. 生成的配置文件如下:

    	<?xml version="1.0" encoding="ISO-8859-1"?>
    	<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    	
    	<hibernate-configuration>
    	  <session-factory>
    	    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    	    <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/oa_01</property>
    	    <property name="hibernate.connection.username">root</property>
    	    <property name="hibernate.connection.password">root</property>
    	    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    	    <property name="hibernate.show_sql">true</property>
    	    <property name="hibernate.hbm2ddl.auto">update</property>
    	    <mapping resource="com/tgb/oa/model/User.hbm.xml"/>
    	  </session-factory>
    	</hibernate-configuration>
    

     

           以上的过程便是通过Ant+Xdoclet生成Hibernate配置文件和映射文件,通过这个示例我们发现,xdoclet之后我们不用再去手动的去写Hibernate的配置文件以及映射文件,所需要的就是写hibernate标记,如此一来,工作量大大减少,效率大大提高,对我们在项目开发中有很大的帮助.

     

     

     

     

你可能感兴趣的:(通过Ant+Xdoclet生成Hibernate配置文件和映射文件)