在上篇文章中,我们介绍了Ant的基本概念及其简单的使用方法,在文章的最后有一个例子用到了Xdoclet相关内容,本篇文章主要来介绍Xdoclet以及通过Ant+Xdoclet生成Hibernate配置文件和映射文件.
Xdoclet基本概念
我们可以在java代码中使用类似于javadoc的注释,来表达更多的内容。这些额外的注释,通过使用xdoclet工具,我们可以将它们转换为我们需要的各种配置文件。
如何开始使用Xdoclet?
Xdoclet不是单独可以运行的工具(不像Ant工具),它可以与其它工具一起配合运行,如Ant。我们下面的例子就是基于Ant和xdoclet的。
- 首先需要保证ant是可用的
- 下载并解压xdoclet的包(我现在使用的是xdoclet2,具体版本是xdoclet-plugins-1.0.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标记指定类的属性映射代码
- 在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>
- 添加Ant视图,运行build.xml文件
- 运行构件脚本build.xml
- 生成的映射文件如下:
<?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>
- 生成的配置文件如下:
<?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配置文件和映射文件
最新推荐文章于 2017-03-09 20:37:00 发布