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程序方面方便易用,不容易不错,而且非常灵活,不失为我们Java开发者的绝佳帮手。

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

时间: 2024-10-24 19:27:00

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

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

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

用MyEclipse自动生成hibernate映射文件和实体类

创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体 方法/步骤  创建数据库,创建相应的表  点击图标,选择MyEclipse Datebase Explorer  右击空白区域,选择new菜单,根据提示创建数据库连接,创建好后会显示你所创建的连接名,如图mysqldb是我创建的数据库连接  选择需要添加hibernate映像文件的工程右击--->MyEclipse-->Add H

使用工具自动生成hibernate的配置文件、实体类与连接数据库

注:图前文字是解释图中的内容. 一.导包 新建一个项目,将hibernate和mysql的jar包导入,放到项目中lib文件夹中,如果没有lib可以自己建一个. hibernate需导入的jar包位置:\hibernate-release-5.2.6.Final\lib\required\"复制粘贴里面所有的" 数据库的jar找到自己存储位置,位置粘贴 二.窗口--显示视图--打开Hibernate Configurations--在Hibernate Configurations的空

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

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

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

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

Mybatis使用generator自动生成映射配置文件信息

 使用mybatis配置映射文件比较的麻烦,但是有自动生成jar工具,方便加速开发速度,下面主要是该工具的使用以及相关的配置. 1.下载相关的资源 我们需要下载mybatis-generator-core-1.3.2.jar,mysql-connector-java-5.1.34.jar(对应相关数据库的驱动包),generator.xml(配置文件)  我的网盘全部相关下载地址:http://pan.baidu.com/s/1ntn48pb 下载解压后会有 generator.xml  和两个

自动生成hibernate的hbm文件

本文有待商榷 当我们在新增插件的时候发现会出现duplicate location,意思是所选的anchive所包含的zip路径已经复用,现象如下: 如上图所示黄色标记部分“Duplicate location”,这时,我们需要对先前添加的archive进行删除,过程如下: 1.进入window —— Preference ,选择Available Software Sites,弹出已经添加过的软件安装路径 2.选中已经添加过的路径,点击“Remove”,即可 是不是很神奇,这样,就不会出现无法

Maven项目自动生成mybaties配置文件

1.把mysql-connector-java-5.1.31.jar包放到C盘的mysqljar文件夹下 2.在generatorConfig.xml文件中配置实体.dao.service等包 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Confi

Myeclipse10.7自动生成hibernate时需要注意的问题

hibernate.cfg.xml中的javax.persistence.validation.mode默认情况下是auto的,就是说如果不设置的话它是会自动去你的classpath下面找一个bean-validation**包, 但是找不到,所以beanvalitionFactory错误,org.hibernate.HibernateException: Error applying BeanValidation relational constraints.需要配置文件下加上一句 <prop