下面内容整理自《精通hibernate》 第二版

Hibernate提供了从映射文件到Java源码的转换工具,名为hbm2java工具,能够利用ANT工具来执行它。

<span style="font-size:18px;"><target name="codegen" depends="prepare">
<taskdef name="hbm2javaTask"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="project.class.path" />
<hbm2javaTask destdir="${source.root}"
<configuration configurationfile="${class.root}/hibernate.cfg.xml" />
<hbm2java/>
</hbm2javaTask>
<target> </span>

以上代码定义了一个hbm2javaTask任务,它的destdir属性指定Java源文件存放在${source.root}文件夹(即src子文件夹)下。<configuration>子元素指定Hibernate的配置文件为classes/hibernate.cfg.xml。

hibernate.cfg.xml文件是XML格式的配置文件。

hbm2javaTask任务重的<hbm2java>子任务就是Hibernate提供的hbm2java工具。它能依据hbm.xml映射文件生成java源文件。

<hbm2java>任务还能够包括两个属性“jdk5”和“ejb3”。使用方法例如以下:

<hbm2java jdk5="true|false" ejb3="true|false">

<hnm2java>任务的jdk5属性指定是否在生成的源码中包括JDK5的语法特性。ejb3属性指定是否在生成的Java源码中包括ejb3的特征,这两个属性的默认值都是false。

Hibernate提供了从映射文件到数据库Schema的转换工具,名为hbm2ddl工具,使用hbm2ddl工具时。必须在Hibernate的配置文件里设置hibernate.dialect属性,显示指定底层数据库的SQL方言,由于hbm2ddl工具会依据数据库的SQL方言来生成对应的数据库Schema。

<span style="font-size:18px;"><target name="schema" depends="compile">
<taskdef name="hbm2javaTask"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="project.class.path" />
<hbm2javaTask destdir="${schema.dir}"
<configuration configurationfile="${class.root}/hibernate.cfg.xml" />
<hbm2ddl export="true" console="true" create="true"/>
drop="true" outputfilename="sampledb.sql" />
</hbm2javaTask>
<target> </span>

以上代码定义了一个hbm2ddlTask任务。它的destdir属性指定生成的DDL脚本文件存放在${schema.dir}文件夹(即schema子文件夹)下。<configuration>子元素指定Hibernate的配置文件为classes/hibernate.cfg.xml。

hbm2ddlTask任务重的<hbm2ddl>子任务就是Hibernate提供的hbm2ddl工具,它能依据hbm.xml映射文件生成对应的数据表。

<hbm2ddl>任务属性

export
假设为true,表示会在数据库中运行所生成的DDL脚本。默觉得true

drop
假设为true,表示会生成删除数据库中表的DDL脚本。默觉得true

create
假设为true。表示会生成创建数据库中表的DDL脚本。默觉得true

outputfilename
指定存放DDL脚本的文件

update
假设为true。表示会对照现有数据库及映射文件,生成用于增量更新数据库的DDL。值得注意的是,不能正式投入执行的数据库中採用这样的增量更新。由于它眼下还不是很健壮,不能保证生成准确的增量更新DDL,也不能保证底层数据库能够顺利执行增量更新DDL。默认值为false

haltonerror
假设为true,表示遇到错误时会终止执行ANTproject。默认值为false

format
设定DDL脚本中SQL语句的格式

delimiter
为DDL脚本设置行结束符

console
假设为true,表示会在控制台显示生成DDL脚本。默认值为true

执行hbm2java工具和hbm2ddl工具的更多相关文章

  1. 关于Hibernate中hbm2java和hbm2ddl工具

    hbm2java:根据映射文件自动生成java源文件 hbm2ddl:根据映射文件自动生成数据库的schema XDoclet:根据带有XDoclet标记的java源文件生成映射文件 Middlege ...

  2. 利用java实现可远程执行linux命令的小工具

    在linux的脚本中,如果不对机器做其他的处理,不能实现在linux的机器上执行命令.为了解决这个问题,写了个小工具来解决这个问题. 后面的代码是利用java实现的可远程执行linux命令的小工具,代 ...

  3. Android 开发工具介绍-SDK工具和平台工具

    原文链接:http://android.eoe.cn/topic/android_sdk Android的SDK提供各种工具可以帮你为Android平台开发移动应用程序.这些工具被分类成两组:SDK工 ...

  4. gcc 交叉工具链中工具使用(arm-linux-xxx)

    在Ubuntu系统中使用 gcc 系列工具是在PC机上使用 arm-linux-gcc 编译的目标 是在 arm CPU上使用 一.安装交叉编译工具链 1. 编译工具怎么获取 1)从官网 http:/ ...

  5. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

  6. 30款基本UX工具 - 思维流程工具 & 原型工具

    来源:GBin1.com 现在的开发人员在建造网站时,注重的是布局和技术特性,但是往往忽略了更重要的一点,那就是用户体验. 如 果用户在使用的时候,不能简单清楚的知道该要如何操作,那么他们一定会选择另 ...

  7. 分享两个网址,一个是使用mssql自带的跟踪工具和分析工具

    http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html 使用mssql自带的跟踪工具和分析工具 http://blog.csdn.net ...

  8. 我的工具:Ping工具

    C# Ping工具 通过该工具可以多个地点Ping服务器以检测服务器响应速度,同时也可以测试网站的响应速度,解析时间,服务器连接时间,下载速度 工具下载地址:https://download.csdn ...

  9. 多功能网页刷新工具,刷pv工具

    多功能网页刷新工具,刷pv工具,在线刷流量,刷PV,刷UV小牛刷新助手功能介绍:1.设置多个刷新网页地址.2.设置刷新时间3.开始工作4.其他操作:老板键:打开时自动刷新:置系统托盘5.可手动输入地址 ...

随机推荐

  1. HDU 6073 Matching In Multiplication(拓扑排序)

    Matching In Multiplication Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K ( ...

  2. SQLSEVER 中的那些键和约束

    SQL Server中有五种约束类型,分别是 PRIMARY KEY约束.FOREIGN KEY约束.UNIQUE约束.DEFAULT约束.和CHECK约束.查看或者创建约束都要使用到 Microso ...

  3. BZOJ 3022 [Balkan2012]The Best Teams(扫描线+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3022 [题目大意] 给定n个球员,第i个球员年龄为AGEi,水平为SKILLi. 没有 ...

  4. BZOJ 2888 资源运输(启发式合并LCT)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2888 [题目大意] 不断加边,问每个连通块的重心到其它点的距离和的和 [题解] 启发式 ...

  5. JVM 参数配置及详解 -Xms -Xmx -Xmn -Xss 调优总结

    堆大小设置 JVM 中最大堆大小有三方面限制: ①.相关操作系统的数据模型(32-bt还是64-bit)限制; ②.系统的可用虚拟内存限制; ③.系统的可用物理内存限制. 32位系统 下,一般限制在1 ...

  6. cookie实现记住密码功能

    之前在一次面试过程中,被问到前后端如何实现记住密码功能,所以自己也试着做,这是纯js做的. 一.实现思路 1.前端页面,自己简单写了一个页面,如下图,不喜勿喷 2.主要有三个函数 setCookie( ...

  7. [转] FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext简介

    今天在用Spring时遇到一个问题,提示找不到applicationContext.xml文件.原来是在加载这个文件时调用的方法不太合适,所以造成了程序找不到项目下的xml配置文件. 我们常用的加载c ...

  8. [原创]MyEclipse2014全手动实现反向工程---解决手动整合ssh时发生的、在hibernate反向工程的时候找不到项目名的问题

    1.在MyEclipse2014中新建两个Web Project项目,名字分别为:Hibernate_manual和Hibernate_auto. 2.单击选中新建的Web项目Hibernate_au ...

  9. 20 Inno Setup制作安装包的几个问题

    系统开发好之后,通常需要制作成安装包,才能卖给用户.利用Inno Setup的向导可以制作简单的安装包,但是如果要做个好的安装包的话可能会遇到一些麻烦,今日终于抽空解决了,Inno Setup打包的一 ...

  10. 移动端调试神器(eruda)

    在日常的移动端开发时,一般都是试用chrome浏览器的移动端模式进行开发和调试,只有在chrome调试完成,没有问题了才会上到真机测试,移动端开发的一大问题就在于此, 各种品牌各种型号手机,手机中各种 ...