Xdoclet + Ant自己主动生成Hibernate配置文件

在使用Hibernate的时候,过多的Hibernate配置文件是一个让人头疼的问题。

近期接触了Xdoclet这个工具。

它实际上就是一个自己主动代码生成的工具。Xdoclet不能单独执行,必须搭配其它工具一起使用,比方ant。

假设ant的工具不会用。建议先补充一下ant的基本知识在来学习Xdoclet。

Ant是什么?

Apache Ant 是一个基于 Java的生成工具。生成工具在软件开发中用来将源码和其它输入文件转换为可运行文件的形式(也有可能转换为可安装的产品映像形式)。

随着应用程序的生成过程变得更加复杂。确保在每次生成期间都使用精确同样的生成步骤。同一时候实现尽可能多的自己主动化,以便及时产生一致的生成版本号.

很多其它的内容自己课下多多学习使用,不在阐述。

XDoclet是什么?

XDoclet能够通过你在java源码中的一些特殊的凝视信息,自己主动为你生成配置文件、源码等等,比如web、ejb的部署描写叙述文件、为你生成struts的struts-config.xml配置文件、javascript校验等。

1.下载Xdoclet,解压。

2.在ant的build.xml中定义xdoclet任务

在这里我们做的是依据hibernate实体类生成hibernate映射文件。所以得先有Hibernate的实体类。

Person实体类:

<span style="font-size:18px;"><span style="font-size:18px;">package com.bjsxt.oa.model;

/**
 *
 * @author Administrator
 * @hibernate.class table="T_Person"
 */
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 Orgnization org;

	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public String getDuty() {
		return duty;
	}
	public void setDuty(String duty) {
		this.duty = duty;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Orgnization getOrg() {
		return org;
	}
	public void setOrg(Orgnization org) {
		this.org = org;
	}
}
</span></span>

在实体类上加上对应的注解后,在ant中定义一个新的xdoclet任务。

<span style="font-size:18px;"><span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?

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

</span></span>

点击Ant插件构建插件

生成的Person.hbm.xml

<span style="font-size:18px;"><span style="font-size:18px;"><?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_Person" name="com.bjsxt.oa.model.Person">
    <id name="id">
      <generator class="native"/>
    </id>
    <property name="name"/>
    <property name="sex"/>
    <property name="address"/>
    <property name="duty"/>
    <property name="phone"/>
    <property name="description"/>
    <many-to-one name="org"/>
  </class>
</hibernate-mapping>
</span></span>

hibernate.cfg.xml

<span style="font-size:18px;"><span style="font-size:18px;"><?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</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">123456</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/bjsxt/oa/model/Orgnization.hbm.xml"/>
    <mapping resource="com/bjsxt/oa/model/Person.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
</span></span>

在本文中能够看到。在理解了Hibernate核心之后,我们能够採用这一的工具来帮助我们开开发。Ant在自己主动构建和部署Java程序方面方便易用,不easy不错,并且很灵活,不失为我们Java开发人员的绝佳帮手。

时间: 2024-10-25 21:23:53

Xdoclet + Ant自己主动生成Hibernate配置文件的相关文章

Xdoclet + Ant自动生成Hibernate配置文件

在使用Hibernate的时候,过多的Hibernate配置文件是一个让人头疼的问题.最近接触了Xdoclet这个工具.它实际上就是一个自动代码生成的工具,Xdoclet不能单独运行,必须搭配其他工具一起使用,比如ant.如果ant的工具不会用,建议先补充一下ant的基本知识在来学习Xdoclet. Ant是什么? Apache Ant 是一个基于 Java的生成工具.生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式).随着应用程序的生成过

MyEclipse10中自动生成Hibernate的实体和xml配置文件

前提:1.在项目中添加Hibernate支持 2.MyEclipse中已经创建好数据库连接 3.表已经建好并且有主键 步骤如下: 1.在DB Browser窗口的已打开连接节点中选中用户创建的所有的表.然后点右键,选择Hibernate ReverseEngineering 2.反向工程配置: 第一步:配置数据表到实体类之间的映射.   Java src folder ——指定把反向工程生成的文件放入到那个项目中(这里要指向到src文件夹才可以) Java package ——实体类和映射文件存

MyEclipse自动生成hibernate实体类和配置文件攻略

步骤1:找到导航栏里面的window--showView然后输入db brower,打开数据库浏览窗口步骤2:在数据库浏览窗口里只有一个Myeclipse自带的数据库,该数据没有用,我们在空白的地方右键新建一个数据库填写数据库信息,包括连接方式,用户名,密码,和jdbc的配置一样,注意将oracle的jar包导进来 步骤3:数据库连接已经出现,我们可以连接上数据库了 步骤4:这时候我们回过头,新建一个java或javaEE项目,名字随便取,然后右键该项目,选择Myeclipse---add hi

在MyEclipse的web项目/java项目中,使用Hibernate-tools中的hbm2java和hbm2ddl工具,依据hbm文件自己主动生成pojo和数据库脚本

     首先.我一定要吐槽下,这个Ant管理部署项目的工具.以及hibernate刚刚学习,导入我这一个简单的问题整了一天多.实在效率有点低下. 在这两天中,①了解了Ant.知道了在Ant中非常灵活的步骤项目的情况,知道了build.xml文件的一些基本写法.②还学习了在MyEclipse这种集成工具中完毕项目部署. ③以及在这两种情况中.利用hibernateTools中的hbm2java和hbm2ddl工具,依据对象关系映射文件,自己主动生成POJO以及SQL文件(就是数据表). 一,在w

Hibernate配置文件和映射元素解释

象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载! <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XM

Mybatis自己主动生成代码

在mybatis自己主动生成代码有两种方式: 方式一:是通过使用eclipse作为开发工具.採用maven来构建项目生成的.以下的演示是通过第一种方式. 今天来记录下mybatis-generator插件自己主动生成xml mapper和model还有dao接口,这样我们就能够把精力放在业务代码上.而不须要关心数据库的详细操作. 这里我使用eclipse作为开发工具,採用maven来构建项目. 1. 编写pom.xml文件 这里仅仅有3个jar文件,数据库使用mysql <project xml

Eclipse从数据库逆向生成Hibernate带注解的实体类

新增Hibernate配置文件: [1]右键选择项目->New->Others,选择新增Hibernate配置文件 [2]填写相应的参数 新增数据库配置文件 [1]打开 Hibernate Configurations模块,新增Add Configuration 选择数据库: 选择UTF-8编码: 生成代码注解类:

eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)

eclipse从数据库逆向生成Hibernate实体类 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再"自己"建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是: 1. 1.5倍工作量,浪费时间.(时间对公司来说很重要) 2. 无法

Eclipse中通过Hibernate Tools插件实现从数据库逆向生成Hibernate带注解的实体类

一.安装hibernate tools插件 1.在线安装 通过Eclipse的Help->Install New Software 在线安装插件,插件连接为: eclipse helios(3.6)版 添加如下地址:http://download.jboss.org/jbosstools/updates/stable/helios/ 选择性安装:hibernate tools在All Jboss tools节点下面 eclipse indigo(3.7)版 添加如下地址:http://downl