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配置文件的更多相关文章
- Eclipse使用xdoclet1.2.3 生成hibernate配置文件和映射文件
用ant和xdoclet生成hibernate配置文件可以为我们省去很多配置的操作,废话不多说,直接给栗子: 测试环境: eclipse:Eclipse Java EE IDE for Web Dev ...
- Xdoclet + Ant自己主动生成Hibernate配置文件
在使用Hibernate的时候,过多的Hibernate配置文件是一个让人头疼的问题. 近期接触了Xdoclet这个工具. 它实际上就是一个自己主动代码生成的工具.Xdoclet不能单独执行,必须搭配 ...
- 利用MyEclipse的ant插件生成Hibernate的映射文件
先下载:xdoclet-plugins-dist-1.0.4-bin build.xml文件 <?xml version="1.0" encoding="UTF-8 ...
- MyEclipse自动生成hibernate实体类和配置文件攻略
步骤1:找到导航栏里面的window--showView然后输入db brower,打开数据库浏览窗口步骤2:在数据库浏览窗口里只有一个Myeclipse自带的数据库,该数据没有用,我们在空白的地方右 ...
- MyEclipse10中自动生成Hibernate的实体和xml配置文件
前提:1.在项目中添加Hibernate支持 2.MyEclipse中已经创建好数据库连接 3.表已经建好并且有主键 步骤如下: 1.在DB Browser窗口的已打开连接节点中选中用户创建的所有的表 ...
- Hibernate Tools 自动生成hibernate的hbm文件
本文有待商榷 当我们在新增插件的时候发现会出现duplicate location,意思是所选的anchive所包含的zip路径已经复用,现象如下: 如上图所示黄色标记部分“Duplicate loc ...
- 用MyEclipse自动生成hibernate映射文件和实体类
创建数据库,创建相应的表 点击图标,选择MyEclipse Datebase Explorer 右击空白区域,选择new菜单,根据提示创建数据库连接,创建好后会显示你所创建的连接名,如图mysqldb ...
- IDEA 自动生成Hibernate实体类和Mapping文件
一.新建工程Demo(如果选的时候勾选了hibernate,IDEA会自动下载Hibernate包,不需要手动导入) 二.导入相关包 Mysql && Hibernate 三.添加Hi ...
- IntelliJ IDEA下自动生成Hibernate映射文件以及实体类
来自:https://blog.csdn.net/chenyunqiang/article/details/81026823 1.构建项目并添加项目结构配置以及配置初始参数 1.1.如图将基本的架子搭 ...
随机推荐
- 关于快速沃尔什变换(FWT)的一点学习和思考
最近在学FWT,抽点时间出来把这个算法总结一下. 快速沃尔什变换(Fast Walsh-Hadamard Transform),简称FWT.是快速完成集合卷积运算的一种算法. 主要功能是求:,其中为集 ...
- [Noi2013]矩阵游戏
来自FallDream的博客,未经允许,请勿转载,谢谢. 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储).她生成的这个矩阵满足一个神奇的性质:若用F[i ...
- zookeeper快速入门
一.zookeeper简介 zookeeper 是apache旗下的hadoop子项目,它一个开源的,分布式的服务协调器.同样通过zookeeper可以实现服务间的同步与配置维护.通常情况下,在分布式 ...
- c语言程序设计第四次作业——顺序结构
(一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...
- Java 反射 Method threw 'java.lang.InstantiationException' exception.
查看这个InstantiationException:异常的api所说的是: 当应用程序试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该 ...
- Mybatis中 collection 和 association 的区别
public class A{ private B b1; private List<B> b2;} 在映射b1属性时用association标签,(一对一的关系) 映射b2时用colle ...
- Mysql锁机制--概念、分类及基础命令
Mysql 系列文章主页 =============== 1 概念 在 Java 程序中,当多线程并发访问某个资源的时候,如果有非线程安全的操作,那么需要通过加锁来保护之.同理,在 Mysql 中,如 ...
- 让ckplayer支持m3u8格式的播放
一 ckplayer官网下载. 直接解压到本地,注意配置里面的默认文件路径,最好是放在服务器的根目录下,这样就可以去访问外链接的资源,官网也是这么推荐的,我这里就直接用node开启一个小服务器. 二 ...
- 15. 3Sum(中等)
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- lodop打印收费小票
//收费系统打印机功能:收费/退费,需要使用到lodop var LODOP;//打印机 $(function () { //初始化 $("body").append('<o ...