hbm2java和hbm2ddl工具

hbm2java工具根据映射文件自动生成Java源文件,而hbm2ddl工具则根据映射文件自动生成数据库Schema,下面是这两种工具的使用:

1.建立Java工程,加入Jar包,创建创建hibernate配置文件以及响应的映射文件,相关jar包及工程目录如下:

2.相关文件代码如下:

build.xml:

 1 <?xml version="1.0"?>
 2 <project name="Learning Hibernate" default="prepare" basedir="">
 3 <property name="source.root" value="src">
 4 </property>
 5 <property name="class.root" value="classes">
 6 </property>
 7 <property name="lib.dir" value="lib">
 8 </property>
 9 <property name="schema" value="schema">
10 </property>
11 <path id="project.class.path">
12 <!-- Include our own classes,of course -->
13 <pathelement location="${class.root}" />
14 <!-- Include jars in the project library directory -->
15 <fileset dir="${lib.dir}">
16 <include name="*.jar" />
17 </fileset>
18 </path>
19 <target name="prepare" description="Sets up build structures">
20 <delete dir="${class.root}">
21 </delete>
22 <mkdir dir="${class.root}" />
23 <copy todir="${class.root}">
24 <fileset dir="${source.root}">
25 <include name="**/*.properties" />
26 <include name="**/*.hbm.xml" />
27 <include name="**/*.cfg.xml" />
28 </fileset>
29 </copy>
30 </target>
31 <!-- hbm2java任务-->
32 <target name="codegen" depends="prepare">
33 <taskdef name="hbm2javaTask" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="project.class.path" />
34 <hbm2javaTask destdir="${source.root}">
35 <configuration configurationfile="${class.root}/hibernate.cfg.xml" />
36 <hbm2java />
37 </hbm2javaTask>
38 </target>
39 <!--编译Java源文件 -->
40 <target name="compile" depends="codegen" description="Compiles all java classes">
41 <javac srcdir="${source.root}" destdir="${class.root}" debug="on" optimize="off" deprecation="on" includeAntRuntime="false">
42 <classpath refid="project.class.path">
43 </classpath>
44 </javac>
45 </target>
46 <!--hbm2ddl任务-->
47 <target name="schema" depends="compile">
48 <taskdef name="hbm2ddlTask" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="project.class.path">
49 </taskdef>
50 <hbm2ddlTask destdir="${schema.dir}">
51 <configuration configurationfile="${class.root}/hibernate.cfg.xml" />
52 <hbm2ddl export="true" console="true" create="true" drop="true" />
53 </hbm2ddlTask>
54 </target>
55 </project>

hibernate.cfg.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6 <session-factory>
 7 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
 8 <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
 9 <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
10 <property name="connection.username">root</property>
11 <property name="connection.password"></property>
12 <property name="show_sql">true</property>
13 <mapping resource="cn/xieyuyan/Customer.hbm.xml" />
14 </session-factory>
15 </hibernate-configuration>

customer.hbm.xml:

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC
 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5 <hibernate-mapping>
 6 <class name="cn.xieyuyan.Customer" table="CUSTOMERS">
 7 <id name="id" column="ID" type="int">
 8 <generator class="increment" />
 9 </id>
10 <property name="name" column="NAME" type="string" not-null="true" />
11 <property name="email" column="EMAIL" type="string" not-null="true" />
12 <property name="password" column="PASSWORD" type="string"
13 not-null="true" />
14 <property name="phone" column="PHONE" type="string"></property>
15 <property name="address" column="ADDRESS" type="string"></property>
16 <property name="description" column="DESCRIPTION" type="text" />
17 <property name="birthday" column="BIRTHDAY" type="date" />
18 <property name="registeredTime" column="REGISTERED_TIME"
19 type="timestamp" />
20 </class>
21 </hibernate-mapping>

3.运行项目:

run as,ant build,刷新项目,工程目录如下:

其中Customer.java即为根据映射文件生成的java源文件,classes目录下为编译后的classes文件

查看数据库,发现新生成了一个customers表,即为根据映射文件生成的数据库文件

时间: 2024-12-17 10:48:22

hbm2java和hbm2ddl工具的相关文章

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

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

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

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

关于Hibernate中hbm2java和hbm2ddl工具

hbm2java:根据映射文件自动生成java源文件 hbm2ddl:根据映射文件自动生成数据库的schema XDoclet:根据带有XDoclet标记的java源文件生成映射文件 Middlegen:根据数据库Schema自动生成映射文件 相关文件位置: 关于hbm2ddl工具的命令选项 hbm2ddl工具不仅需要读取xml映射文件还需要读取class的相关类文件

运行hbm2java工具和hbm2ddl工具

以下内容整理自<精通hibernate> 第二版 Hibernate提供了从映射文件到Java源代码的转换工具,名为hbm2java工具,可以利用ANT工具来运行它. <span style="font-size:18px;"><target name="codegen" depends="prepare"> <taskdef name="hbm2javaTask" classname

执行hbm2java工具和hbm2ddl工具

下面内容整理自<精通hibernate> 第二版 Hibernate提供了从映射文件到Java源码的转换工具,名为hbm2java工具,能够利用ANT工具来执行它. <span style="font-size:18px;"><target name="codegen" depends="prepare"> <taskdef name="hbm2javaTask" classname=

《精通Hibernate:Java对象持久化技术详解》目录

图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 1.2.1 概念模型 1.2.2 关系数据模型 1.2.3 域模型 1.2.4 域对象 1.2.5 域对象之间的关系 1.2.6 域对象的持久化概念 1.3 小结 1.4 思考题第2章 Java对象持久化技术概述: 2.1

Hibernate建立多对一的单向关联关系

以下内容整理自<精通Hibernate>第二版 映射代码: <span style="font-size:18px;"><many-to-one name="customer" column="CUSTOMER_ID" class="mypack.Customer" not-null="true" lazy="false" /></span>

NHibernate 3.0.0.Alpha1 发布及新特性介绍

发布 刚刚NHibernate的Leader--Fabio Maulo发布了NHibernate 3.0.0.Alpha1版本,这是NHibernate 3.0.0的第一个公开测试版本. 下载地址 你可以到这里下载NHibernate 3.0.0.Alpha1,基于.Net3.5平台,具体文件如下. NHibernate源码:NHibernate-3.0.0.Alpha1-src.zip NHibernate二进制文件:NHibernate-3.0.0.Alpha1-bin.zip 特性介绍 N

atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表

atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表 1. 建模在后自动建表 1 1. 传统上,需要首先建表,在业务编码.. 1 2. 模型驱动建表---更多简化法是在建模在后自动建表 1 2. 自动建表的原理: 1 3. 自动建表工具::hibernate.hbm2ddl 跟Hibernate4.1 2 4. hbm2ddl最佳实践 2 3. hibernate.hbm2ddl.auto 2 5. Java语句执行 3 6. 使用Ant 执行hbm2ddl 3 7