下面内容整理自《精通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. Codeforces Round #426 (Div. 2) D The Bakery(线段树 DP)

     The Bakery time limit per test 2.5 seconds memory limit per test 256 megabytes input standard input ...

  2. HZAU 1205 Sequence Number(双指针)

    题目链接:http://acm.hzau.edu.cn/problem.php?id=1205 [题意]给你一串数,要求你找到两个数a[i],a[j],使得a[i]<=a[j]且j>=i且 ...

  3. Python开发基础-Day24socket套接字基础2

    基于UDP的socket 面向无连接的不可靠数据传输,可以没有服务器端,只不过没有服务器端,发送的数据会被直接丢弃,并不能到达服务器端 #客户端 import socket ip_port=('127 ...

  4. phonegap3.5插件开发小demo

    由于phonegap升级较快,在3.X之后改变了它的插件机制,所有调用手机原生的功能全部以外部插件的形式提供,创建phonegap项目之后不再能够直接调用系统功能API如camera,device等, ...

  5. 【枚举】bzoj1072 [SCOI2007]排列perm

    暴力,next_permutation函数用于枚举出下一个排列.sscanf函数用于将字符串转化成数字. #include<cstdio> #include<cstring> ...

  6. 最简单的flask表单登录

    from flask import Flask from flask import request app = Flask(__name__) @app.route('/', methods=['GE ...

  7. Hiho: 连通图

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 还记得上次小Hi和小Ho学校被黑客攻击的事情么,那一次攻击最后造成了学校网络数据的丢失.为了避免再次出现这样的情况,学校决 ...

  8. rdlc报表集锦

    rdlc报表动态生成实例 http://blog.csdn.net/fwj380891124/article/details/8803844  rdlc报表动态生成公共类 http://blog.cs ...

  9. ArcGIS Engine10.2与VS2017的环境设置

    首先,在安装ArcGIS Engine 10.2之前,大家应该了解的事是:AE10.2推荐与VS2010或VS2012匹配使用,AE10.3推荐与VS2013匹配使用.除上述的推荐匹配版本之外的方法, ...

  10. Express重定向

    var express = require('express'); var app = express(); app.get('/',function(req,res){ res.redirect(' ...