Hibernate中需要class和mapping file, 也就是java文件和hbm.xml文件,由于Hibernate只支持DML, 不支持DDL,所以在DB中需要有DDL或已经存在的数据库的表。Hibernate中共有三种文件与代码自动生成功能有关:
class, mapping file and DDL
1. Middlegen
是用来从DB中已存在的表,生成相应的mapping file. 可以下载一个老外的middlegen的例子。
http://sourceforge.net/project/showfiles.php?group_id=40712
调用Middlegen很简单,例子中的middlegen自动生成ant指令如下
引用
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
>
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/>
</middlegen>
然后会有一个GUI,给我们专门设计各种表与表之间的关系(一对一,一对多以及单向双向关系)。需要说明的是,middlegen生成的代码没有直接写mapping file灵活性好,所以生成的mapping file有时还需要我们去修改。
2. XDoclet
它是用来从java文件自动生成hbm文件的,不过我们需要在java代码中写一些规定的tag,才能得到自动生成的hbm文件.
Java代码
<hibernatedoclet
destdir="src"
excludedtags="@version,@author,@todo"
force="true"
verbose="true">
<fileset dir="src">
<include name="**/*.java"/>
<exclude name="**/Product.java"/>
</fileset>
<hibernate version="2.0"/>
</hibernatedoclet>
3. hbm2java
它是用来从mapping 文件生成java代码的工具,调用很简单,在参数中需要给出所有的hbm文件,如下:
Java代码
<java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">
<classpath refid="classpath"/>
<arg line="${build.gen-src.dir}/airline/hibernate/*.hbm.xml"/>
</java>
4. SchemaExport
如果写好了java文件和hbm文件,就可以用SchemaExport直接生成DDL文件,调用同样简单,只需在java代码中,加入如下:
Java代码
conf = new Configuration();
.addClass(a.class);
.addClass(b.class);;
SchemaExport dbExport = new SchemaExport(conf);;
dbExport.setOutputFile("myschema.sql");;
dbExport.create(true, true);;
从这四种自动生成工具来看, mapping file, java file and DDL,只要知道任何一种文件,都可以得到另外两种文件,
如:
1. 只有mapping file:
mapping file---hbm2java----java---SchemaExport----DDL
2.只有DDL
DDL---Middlegen---hbm----hbm2java----java
3.只有Java
java---XDoclet---hbm----SchemaExport----DDL
从这里,大家也可以体会到, Hibernate强大的灵活性。
分享到:
相关推荐
通过自动化的方式,它可以自动生成基于Hibernate的实体类、DAO(数据访问对象)层代码以及SQL映射文件,极大地提高了开发效率。 在Java开发中,Hibernate作为一款强大的ORM框架,它允许开发者使用面向对象的方式来...
Hibernate代码生成工具 设计全攻略
《代码自动生成工具 Hibernate配置文件工具 MagicalTools 深度解析》 在现代软件开发过程中,提高效率和减少重复劳动是至关重要的。为此,开发者们不断寻求自动化工具的帮助,以简化繁琐的任务,如代码编写、配置...
本文将深入探讨如何使用JPA和Spring Boot结合,实现代码自动生成工具,提高开发效率。 首先,让我们了解JPA。JPA通过提供一套标准API,使得开发者无需关注底层SQL语句,而是通过定义实体类、注解以及Repository接口...
数据库代码自动生成是一种提高开发效率的有效方法,它能够帮助开发者快速构建基于数据库的业务系统,减少手动编写重复性代码的时间。在本主题中,我们将深入探讨这个过程,重点关注"实体类"、"DataAccessAuto"和...
本文将深入探讨Hibernate如何自动生成数据库文件,以及相关知识点。 首先,Hibernate的核心概念是对象关系映射(ORM),它通过元数据(如XML配置文件或注解)将Java类与数据库表进行绑定。当需要自动生成数据库文件...
在本教程中,我们将探讨如何利用Hibernate的注解功能,通过实体类自动生成数据库中的表。这极大地简化了数据库建模过程,同时也减少了手动编写SQL语句的工作量。 首先,我们需要理解Hibernate的核心概念。ORM框架如...
标题中的"AutoCode_SSHDemo_Setup自动生成HIBERNATE 配置文件 JAVA代码自动生成"表明这是一个关于自动化代码生成的工具,主要用于简化Hibernate配置文件和Java代码的编写过程。SSH在这里指的是Spring、Struts和...
【标题】:“Hibernate 映射文件自动生成” 在Java开发中,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作。Hibernate通过XML或注解方式将Java类与数据库表进行映射,使得开发者可以...
总结起来,Java代码自动生成工具能够帮助开发者快速构建基于Spring和Hibernate的项目,它能自动完成控制层、模型层、DAO层和服务器层的代码生成,并且支持Oracle和MySQL等多种数据库。通过自定义模板,工具的扩展性...
"简单好用的Nhibernate代码自动生成工具"就是为了解决这个问题而出现的。 动软代码生成器是由国内开发者开发的一款完全免费的代码生成工具,它可以根据数据库表结构自动生成包括Nhibernate在内的各种代码,大大简化...
在描述中提到的“hibernate自动生成”是指Hibernate提供的代码生成工具,能够帮助我们快速创建Entity(实体)、映射文件(Mapping Files)以及DAO(数据访问对象)等关键组件。这一特性使得开发过程更加便捷,减少了...
Hibernate 提供了一个非常实用的功能——基于实体类自动生成数据库表,这不仅能够显著提高开发效率,还能减少人为错误。本文将详细介绍如何利用 Hibernate 的 `SchemaExport` 类实现这一功能。 #### 二、准备工作 ...
### JFrame 代码自动生成工具详解 #### 一、概述 JFrame应用软件开发平台是一款基于JavaEE技术栈的高效开发框架及其配套的自动化代码生成工具。该平台旨在通过自动化手段大幅减少开发工作量,帮助软件开发团队降低...
这些重复的工作可以通过代码自动生成工具来简化,提高开发效率。 代码自动生成是一种软件工程方法,它通过自动化过程来创建大量结构化的源代码,这些代码通常遵循一定的模板或规则。在SSH框架中,这一过程可以帮助...
Hibernate的逆向工程工具,也被称为Hibernate Tools,能够从现有的数据库结构自动生成对应的Java持久化类(Entity)、Hibernate配置文件(hibernate.cfg.xml)以及映射文件(.hbm.xml)。这样,开发者可以快速地...
本篇文章将详细讲解如何在MyEclipse环境下使用Hibernate连接数据库并自动生成配置文件。 首先,我们需要创建一个Web工程。在MyEclipse中,可以通过菜单栏选择“File” -> “New” -> “Dynamic Web Project”,为...
"自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...
在IT行业中,快速开发和代码自动生成是提升效率和生产力的关键技术。这些工具和方法能够帮助程序员节省大量的时间和精力,特别是在构建大型复杂系统时。"JavaAutoCode2_1"这个压缩包文件名可能暗示了一个专门针对...