`

Ant+XDoclet生成hbm文件

    博客分类:
  • ORM
阅读更多
这次我们用OA中常用的 人员、组织、用户三个对象来做测试,组织的对象模型为:
public class Organization {

	/**
	 * @hibernate.id generator-class="native"
	 */
	private int id;

	/**
	 * @hibernate.property
	 */
	private String name;

	/**
	 * @hibernate.property
	 */
	private String sn;

	/**
	 * @hibernate.property
	 */
	private String description;

	/**
	 * @hibernate.many-to-one column="pid"
	 */
	private Organization parent;

	/**
	 * @hibernate.set inverse="true" lazy="extra"
	 * @hibernate.key column="pid"
	 * @hibernate.one-to-many class="org.darkness.oa.model.Organization"
	 */
	private Set<Organization> children;

}


人员的对象模型为:
public class Person {

	/**
	 * @hibernate.id generator-class="native"
	 */
	private int id;

	/**
	 * @hibernate.property
	 */
	private String name;

	/**
	 * @hibernate.property
	 */
	private String sex;

	/**
	 * @hibernate.property
	 */
	private String address;

	/**
	 * @hibernate.property
	 */
	private String duty;

	/**
	 * @hibernate.property
	 */
	private String phone;

	/**
	 * @hibernate.property
	 */
	private String description;

	/**
	 * @hibernate.many-to-one
	 */
	private Organization org;

	/**
	 * Person 1-----1 User
	 * 
	 * @hibernate.one-to-one property-ref="person"
	 */
	private User user;
}


系统用户的对象模型为:
public class User {

	/**
	 * @hibernate.id generator-class="native"
	 */
	private int id;

	/**
	 * 登录帐号
	 * 
	 * @hibernate.property not-null="true" unique="true"
	 */
	private String username;

	/**
	 * 登录密码
	 * 
	 * @hibernate.property not-null="true"
	 */
	private String password;

	/**
	 * 帐号创建时间
	 * 
	 * @hibernate.property update="false"
	 */
	private Date createTime;

	/**
	 * 帐号失效时间
	 * 
	 * @hibernate.property
	 */
	private Date expireTime;

	/**
	 * 对应的人员信息 User 1----1 Person
	 * 
	 * @hibernate.many-to-one unique="true"
	 */
	private Person person;
}


注意到我们编写的这几个类中在属性上都有@hibernate标志开头的一些注释,这个上hibernate提供给xdoclet用来生成对应hbm文件的标注语言,有了它,我们就可以通过xdoclet将我们的标注提取出来生成hbm文件来,这样有两点好处:
1、节约了我们手动编写hbm映射文件的时间,提高了编程效率
2、以后一旦改动来代码,我们不需要烦心我们的映射文件与对应的类不匹配,减小来维护带来的成本,提高了系统的可维护性

下面我们来看一下对应的ant脚本:
<?xml version="1.0" encoding="UTF-8"?>
<project name="系统构建脚本" default="build" basedir=".">

	<property name="src.dir" value="${basedir}/src" />
	
	<property name="xdoclet.home" value="D:/java/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>
	<path id="classpath">
		<fileset dir="${basedir}/lib">
			<include name="**/*.jar" />
		</fileset>
	</path>
	
	<target name="build">
		<delete dir="${basedir}/bin/org" />
		<mkdir dir="${basedir}/bin/org" />
		<javac srcdir="." destdir="${basedir}/bin" debug="true" debuglevel="lines,vars,source">
			<!--<compilerarg value="-encoding gb2312 "/>-->
			<classpath refid="classpath" />
		</javac>
	</target>
	
	<taskdef name="xdoclet" classname="org.xdoclet.ant.XDocletTask" classpathref="xdoclet.task.classpath" />

	<target name="生成Hibernate配置文件">
		<xdoclet>
			<fileset dir="${src.dir}">
				<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/test" jdbcdriver="com.mysql.jdbc.Driver" jdbcusername="root" jdbcpassword="root" dialect="org.hibernate.dialect.MySQLDialect" showsql="true" />
		</xdoclet>
	</target>
	<target name="生成hibernate映射文件">
		<xdoclet>
			<fileset dir="${basedir}/src/org/darkness/oa/model">
				<include name="**/*.java" />
			</fileset>
			<component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin" version="3.0" destdir="${src.dir}" />
		</xdoclet>
	</target>
</project>

需要注意一点的就上xdoclet.home对应到下载的xdoclet的根目录就可以了
这样我们运行一下ant,model对应的hbm文件就自动生成了。

分享到:
评论

相关推荐

    Hibernate使用xdoclet生成映射文件和sql语句

    《使用Hibernate和XDoclet生成映射文件与SQL语句详解》 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了实现对象与数据库表之间的映射,我们需要编写XML映射...

    Ant结合Xdoclet 实例教程(之整合 Hibernate)

    在Java类中,我们只需要添加适当的Javadoc注释,Xdoclet就会根据这些注释生成对应的.hbm.xml映射文件和Hibernate配置文件。而Ant则负责编译源代码、运行Xdoclet以及执行其他构建任务。 具体步骤如下: 1. **设置...

    XDoclet1.2+XDoclet教程

    5. **Hibernate支持**:对于Hibernate项目,XDoclet可以生成.hbm.xml映射文件,避免手动编写这些文件。同时,它还可以为实体类生成CRUD操作的基础代码。 6. **Struts支持**:XDoclet可以帮助生成Struts的ActionForm...

    Xdoclet生成*.hbm.xml映射文件

    《Xdoclet生成*.hbm.xml映射文件详解》 在Java开发中,尤其是在使用Hibernate作为持久层框架时,数据库模型与Java对象之间的映射文件*.hbm.xml是必不可少的。这种映射文件定义了数据库表与Java实体类之间的对应关系...

    XDOCLET的使用例子

    Eclipse会自动检测源代码中的注释,并在编译期间调用XDoclet生成相应的配置或代码文件,这样可以保持源代码与生成文件的一致性。 **Ant任务** Ant是Apache软件基金会的构建工具,它以XML为基础定义构建过程。在...

    用maven的xdoclet插件t生成hibernate配置文件

    为了生成Hibernate配置文件,我们需要编写一个Ant脚本来调用Xdoclet。这里是一个简单的示例脚本: ```xml &lt;property name="doclet.dir" value="target/xdoclet"/&gt; ${src.dir}" includes="**/*.class"/&gt; $...

    Java通用代码生成实用程序XDoclet(源码包)

    (mapping file)、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant的任务target支持,完全通过ant来完成任务。 我们只须在项目中引入xjavadoc-1.1.jar、xdoclet-hibernate-module-1.2.3.jar等等所需要的jar包就...

    XDoclet Api

    一旦解析了这些标签,XDoclet就会生成相应的配置文件,这些文件通常是项目运行所必需的,比如EJB的ejb-jar.xml或Hibernate的.hbm.xml文件。 **XDoclet的主要功能** 1. **EJB生成**:XDoclet可以自动为Enterprise ...

    xdoclet-src-1.2.3

    - **Hibernate支持**:对于ORM框架Hibernate,XDoclet能够自动生成实体类、映射文件(hbm.xml)以及DAO层的接口和实现。这样,开发者只需要关注数据库模型的设计,无需手动编写繁琐的持久化代码。 - **JMX管理**...

    XDoclet 与Hibernate 映射

    XDoclet 是一款强大的Java注解处理工具,它允许开发者在Java源代码中添加元数据,这些元数据可以用来自动生成各种配置文件,包括Hibernate的映射文件(hbm.xml)。这种方式极大地提高了开发效率,避免了手动创建和...

    xdoclet-plugins-1.0.3

    - **Hibernate**:对于Hibernate,XDoclet能生成hbm.xml映射文件,简化对象关系映射的配置。 - **JBOSS**:支持JBOSS应用服务器的特定配置文件生成。 - **Web Services**:通过使用特定插件,XDoclet可以生成Web服务...

    常用的ANT蚂蚁脚本

    XDoclet是ANT的一个插件,它允许开发者通过在Java源代码中的注释来生成各种元数据,包括Hibernate的映射文件(.hbm.xml)。这样,开发者无需手动编写这些映射文件,只需在类和属性上添加特定的注释,XDoclet就会...

    XDoclet插件包以及从Java持久化类生成hibernate mapping小例子

    XDoclet是一款强大的Java文档注解处理器,它能够根据Java源代码中的特定注解自动生成各种配置文件,比如Hibernate的映射文件(*.hbm.xml)、EJB的部署描述符等。在Java持久化编程中,XDoclet的使用极大地提高了开发...

    Hibernate 的Xdoclet模板

    4. **使用步骤**:文章可能会提供一个详细的步骤指南,教读者如何将Xdoclet集成到Eclipse项目中,包括安装插件、配置项目属性、编写注释以及运行Xdoclet生成代码和配置。 5. **优点与缺点**:文章可能会讨论使用...

    Hibernate中的Middlegen入门指南

    Hibernate 中的 Middlegen 入门指南是利用 Middlegen 生产 hbm.xml 文件的工具,旨在帮助开发者快速生成 Hibernate 的配置文件。通过本指南,开发者可以快速掌握 Middlegen 的使用方法,并快速生成 Hibernate 的配置...

    xdoclet1.04 plugin

    2. **Hibernate插件**:对于ORM(对象关系映射)框架Hibernate,XDoclet可以读取实体类上的Javadoc注释,生成Hibernate的配置文件(hibernate.cfg.xml)和映射文件(*.hbm.xml)。这使得开发者可以专注于业务逻辑,...

    Ant构建工具学习笔记

    以下是一个使用XDoclet插件生成Hibernate配置文件的例子: ```xml &lt;path id="xdoclet.task.classpath"&gt; ${xdoclet.home}/lib"&gt; **/*.jar"/&gt; ${xdoclet.home}/plugins"&gt; **/*.jar"/&gt; &lt;taskdef name="...

    XDocletSample

    - 注释被解析后,XDoclet会根据预定义的模板生成相应的文件,如Hibernate的.hbm.xml文件或EJB的ejb-jar.xml。 2. **XDoclet注解** - 在`XDocletSample`中,可以看到在类、接口和方法上使用了特定的XDoclet注解。...

    spring+hibernate多层web开发eclipse下的开发模板.doc

    在这个模板中,我们利用 xDoclet 来生成 Hibernate 的配置文件(如 HBM 文件)和 SQL 语句,以及 Spring 的配置文件(如 applicationContext.xml)。这样做的好处在于可以极大地提高开发效率,并减少出错的可能性。 ...

Global site tag (gtag.js) - Google Analytics