http://blog.csdn.net/wangpeng047/article/details/6877720
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO。意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计。
原因是:
1. 1.5倍工作量,浪费时间。(时间对公司来说很重要)
2. 无法保证两边映射一致。因为两边都是自己设计的,那么就需要人为保证映射关系统一,会有隐患。
3. 开发、维护上都不利。因为如果任意一方因某些原因需要改用,那么经常要两边都要改,这样的话映射不一致的可能性不仅更大,而且效率低下。而如果利用正逆向工程的话,则很容易解决。
所以,因项目原因我便研究了下由数据库逆向生成Hibernate实体类的方法。
在Myeclipse中,正逆向工程操作比较简单,而如果是eclipse的话,会比较麻烦,因为必须要先配置下Hibernate环境(同理如果要生成其他持久化层框架的实体类,也需要先配置)。
有关eclipse配置Hibernate环境的方法这里就不叙述了,上网搜吧,我给提供个参考链接:
http://hi.baidu.com/java513/blog/item/6be18a3c5d79daf43c6d9742.html
那么下面讲述正题:如何从数据库逆向生成Hibernate实体类
1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库:



然后选择数据库,这里用的oracle,然后给个名字,如MyOracle。

点击下图中按钮,新建一个数据库驱动的配置。

选择数据库版本,这里是oracle 10g版本,可以为该配置另起个名字。

然后选择相应数据库版本的jar包。

下面就是依据自身情况填写数据库连接配置了。

接下来,完善Properties下的General选项卡内容,同样是连接数据库的信息,配置完后点击Test Connection按钮测试是否能连通数据库。

然后点击Next,再确认无误后,单击Finish。
之后Data Management就会出现MyOracle的数据库资源管理器,发生变化如下说明数据库配置成功。

2. 生成hibernate实体类
打开Hibernate Configurations窗口。

然后在打开窗口右击,点击Add Configuration...

Project选择项目(test),Database connection选择刚刚配好的MyOracle(其实可以直接选择[Hibernate configured connection]通过Hibernate配置文件连接数据库,但是通过这种方式并不一定能成功,单独采用Data Management也同样不一定成功,原因不是很清楚,所以最后采用Data Management + Hibernate配置文件的结合方式,这样就比较保险啦)

在项目(test)内任意位置新建Hibernate的相关配置文件(hibernate.properties和hibernate.cfg.xml)。
新建hibernate.properties:

新建hibernate.cfg.xml:


返回Edit Configuration窗体后,选择Common选项卡中Encoding选择UTF-8,其他默认即可,点击OK按钮

这样Hibernate Configuration就添加了一个配置信息,如下图

在eclipse菜单栏中的工具栏的空白处右击鼠标,选择Customize Perspective

弹出如下窗体后,依照图中选择Command Groups Availability选项卡,勾选Hibernate Code Generation,然后单击确定。

之后工具栏就会出现相应按钮。

单击该按钮,并选择图中Hibernate Code Generation Configurations

然后弹出如下该窗口,按如下图操作,右击后选择New

弹出如下窗体,选择输出的项目地址,填写包名,勾选Reverse engineer from JDBC Connection,然后创建hibernate.reveng.xml

创建hibernate.reveng.xml:

Console configuration选择刚刚配置好的hibernate,点击Refresh按钮,就会出现数据库的全部schema,找到你的数据库,然后将其Include到右侧窗口里,然后点击Finish按钮完成hibernate.reveng.xml的创建。

返回后选择Exporters选项卡,勾选Domain code和Hibernate XML Mappings,然后点击Run按钮

最终生成效果如下:
分享到:
相关推荐
### Eclipse Hibernate 反向生成带注解的实体类——步骤详解 #### 一、创建数据库管理器 在开始之前,我们需要确保已经安装了Eclipse IDE,并且具备基本的数据库操作能力。下面详细介绍如何在Eclipse中创建数据库...
3. **使用逆向工程插件**:Eclipse有一些插件,如“CodePro Analytix”(现已更名为“Eclipse Java Developer Tools”)或“MyEclipse”,它们支持自动生成实体类。安装并启用这些插件后,你可以选择“Generate Java...
使用Hibernate的逆向工程工具,如`hibernate-tools`,可以快速从数据库中生成实体类。这个过程包括读取数据库模式,创建Java类,并自动添加字段、getter、setter方法以及注解。 2. MyBatis: MyBatis 提供了`...
2. **逆向工程**:通过选择数据库表,插件能够自动生成对应的Java实体类,这些类包含了字段属性和getter/setter方法,且已根据数据库列的类型映射为Java类型。 3. **生成Hibernate配置文件(hbm.xml)**:自动创建每...
逆向工程是Hibernate Tools的核心功能之一,它可以从现有的数据库表生成对应的Java实体类和Hibernate映射文件(`.hbm.xml`)。在Eclipse中,可以通过以下步骤实现: 1. **新建Hibernate项目**:在Eclipse中选择"File...
请输入包的名称和映射文件需要放到的文件夹之后运行CreateTableXml里的main方法,就可以自动生成映射文件了。记着刷新文件夹,要不然是看不到的。 当然只是一些基础的属性。对于一些比较复杂,还是需要自己来修改的...
6. **逆向工程**:逆向工程功能允许从现有数据库生成实体类和映射文件,对于已有数据库的应用程序开发非常有用。 7. **HQL(Hibernate Query Language)支持**:HQL是Hibernate提供的面向对象的查询语言,类似于SQL...
这个插件极大地简化了与Hibernate相关的开发任务,如实体类的生成、数据库模型的可视化、SQL查询的编写和调试等。以下是对这个插件的详细介绍: 1. **安装与集成**: - 插件安装非常便捷,正如描述中提到的,可以...
6. 利用HibernateTools生成reveng.xml:该文件用于配置Hibernate反向工程,即根据现有数据库结构生成实体类等代码。reveng.xml指定了哪些表应该被反向工程处理。 7. 运行HibernateCodeGenerator:在Eclipse工具栏中...
通过使用Eclipse和Hibernate Tools插件进行逆向工程,开发者可以高效地从现有数据库中生成实体类和其他相关文件。这种方式不仅提高了开发效率,还减少了出错的机会。然而,在使用逆向工程时也需要注意后期的代码优化...
总之,Hibernate 3.0的POJO类生成功能大大简化了Java开发者与数据库交互的工作,通过逆向工程将数据库结构转化为可操作的对象模型,使开发过程更加高效。了解并熟练掌握这一方法,对于Java EE开发者来说是非常重要的...
2. **数据库逆向工程**:通过连接数据库,可以将现有的表结构转换为Hibernate实体类,极大地节省了手动编写映射文件和实体类的时间。 3. **HQL和SQL编辑器**:提供了专门的HQL(Hibernate查询语言)和SQL编辑器,...
1. **Hibernate Tools**:这是Eclipse的一个插件,提供了对Hibernate的图形化支持,如实体类生成、HQL和JPQL编辑器、数据库反向工程等。通过这些工具,开发者可以更直观地设计和管理数据库模型,减少手动编写SQL的...
- **逆向工程**:从现有数据库中生成实体类和映射文件。 - **编写HQL/JPQL查询**:内置的查询编辑器支持编写和测试Hibernate查询语言。 - **调试ORM操作**:利用Eclipse的调试器跟踪和理解ORM代码的行为。 总之,...
本文主要介绍如何在 Eclipse IDE 中配置 Hibernate3 插件,并利用该插件自动生成数据库映射文件(Mapping)及对应的 Java 实体类。通过这一过程,可以显著提高开发效率并减少手动编写代码的工作量。 #### 二、准备...
使用Hibernate逆向工程时,若数据库中有中文注释,会出现乱码,本压缩包中对其进行了修改,使其支持中文。主要修改的文件为:\plugins\org.hibernate.eclipse_3.2.4.Beta1-R200810311334\lib\tools\hibernate-tools....
3. 代码生成:利用Hibernate Tools的`Hibernate Code Generation`功能,可以反向工程数据库表生成Java实体类和映射文件。首先确保数据库中有需要映射的表,并设置好主键。在Hibernate视图中找到`Hibernate Code ...
在Hibernate中,这个工具通常被称为Hibernate Tools,它包含多个子模块,例如用于逆向工程的DDL2Java工具,可以从现有的数据库模式生成Java实体类和映射文件。这个过程非常实用,特别是在已有数据库结构的情况下,...