背景:工作中使用Hibernate进行持久化的开发工作,所以有必要详细了解这方面的知识。

ps:这里有个问题就是刷新表的时候速度太慢了。还不如自己手动去创建。如果表太多倒是可以采取批量生成的策略。

在项目开发时,要么先完成数据库表的设计,再逆向生成实体类或者根据需求分析建立实体类,有正向生成数据库表。没有人会浪费大量的时间在进行完任意一方时自己匹配建立另一方设计,这样做还可能导致两边映射不一致,对开发和维护都不利。废话不多说,现在开始实现由数据库逆向生成Hibernate实体类的方法。

1 Eclipse配置Hibernate环境

(1)HibernateTools下载地址:http://download.csdn.net/detail/b671900/7884405

(2)解压后将features和plugins这两个文件夹拷贝到我们事先建好的文件夹eclipse-jee-luna-R\MyPlugins\HibernateTools\下面。如下图所示

:  

(3)在eclipse目录新建目录links(如果已经存在就不需要在创建了),在该目录下新建文件hibernate.link,内容为:path=D:/eclipse-jee-luna-R/MyPlugins/Hibernatetools

(4)重新启动Eclipse,在文件(file)-->新建(new)-->其它(other)中如果看到hibernate的配置项就证明已经安装成功,如下图:

2 创建项目生成映射文件和持久化类

(1)新建一个项目hibernateTools,并将数据库驱动拷贝到lib目录下,项目的目录结构如下:

ps:这里我根据需要使用oracle的jar包。这里可以随意建一个工程,或者使用系统工程,只要jar包存在即可。jar包主要是用来配置数据库相关驱动,连接数据库用

2.1 打开Hibernate Perspective视图层

在Eclipse中打开“Hibernate Perspective“。

选择“Windows” >> “Open Perspective” >> “Others…” , 选择 “Hibernate“。

此时在工作窗口会看到一个Hibernate Configurations窗口。

2.2 新建Hibernate Configuration 配置

1.在Hibernate Configurations窗口中, 右键,选 “Add Configuration…”,弹出对话框 Edit Configuration窗口。如下图所示

2.在 “Project”区域, 单击 “Browse..” 选择你自己的项目。(根据具体情况作出判断)
3.在 “Database Connection” 区域, 单击 “New..”创建你自己的数据库设定。

ps:这一步比较重要。用来配置数据库驱动,数据库连接串。后面的4 5 6步都是做这个操作的

4.弹出Connection Profile中选Oracle ,并填写“Name”后,Next。Name为数据库节点的名称,含有数据源的信息

5.在弹出对话框中,选Driver,没有的话要新加,此处新加Driver。

6.弹出对话框New Driver Definition。用来配置数据库驱动

ps:在Name/Type中中选一个driver templates,如果出现“Unable to locate JAR/zip in file system as specified by the driver definition: ojdbc14.jar.”

就要在“JAR List”选项卡中删除原有的驱动文件,重新加一下就好了。

ps:这里的Driver name 自己命名,后面可以直接选取

删除驱动文件重新添加,此处添加的是Maven仓库中的jar包

完成后点击OK

实际操作:进行数据库驱动的相关配置ps:此处要配置前边的jar包路径。自己建立一个jdbc的驱动器并命名。

数据库驱动配置好以后,填写数据库的相关连接,可以点Test Connection测试是否可以连接上。

连接上如图

7.Configuration file配置

ps:下面的Database connections选项选择第6步中配置好的连接名称。如下所示

点击“Setup”弹出“Setup configuration file”对话框,如果不存在.dfg.xml文件,可以新建

上图点击“Create New...”后,弹出新建cfg.xml文件对话框

创建在项目目录下的main/java/resources下,

我的是在“maven-hibernate-demo/src/main/resources”

可以点击next配置更具体的设置,此处我们直接Finsh。即不再配置hibernate.cfg.xml中的信息

返回前一界面后,OK。记住,此处的“Hibernate Version”选项一定要选对版本,否则反向工程不会成功。

ps:在sts中没有Hibernate Version选项的配置

查看Hibernate Configurations视图。

ps:点击新建的配置,在Database目录下可以看到我们连接的数据库和相关的表信息,这样就表示配置成功。数据库刷新的过程会有点长,如下图所示

2.3 查看src/main/resources目录下的刚建好的hibernate.cfg.xml文件

ps:这里可以自己写,也可以直接finish跳过

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@yourdatabaseip:gzip</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
</session-factory>
</hibernate-configuration>

2.4 生成Hibernate代码

在“Hibernate Perspective”视图中, 点击 “Hibernate Code Generation Configuration”

在生成代码框中,新建configuration,并填写Main选项卡和Exporters选项卡,

Main中需要填写输出路径等,填完的如下

console configuration选择前边刚配置完的Hibernate Configuration,前边的名字是“hibernate”

ps:这就是前面对数据源相关的配置

Output directory选择输出路径

Reverse enginner from JDBC Connection勾选

Package填写包名

reveng.xml填写创建hibernate.reveng.xml的位置,没有则新建。

  • console configuration:选择在第二点中我们创建的数据库连接。
  • output directory:配置执行后输出的目录,生成hbm、PO类等。
  • package:包名,这里请输入PO类存放的路径。
  • reveng.xml:生成mapping和PO类的重要配置文件

ps:在创建reveng.xml时候,要点击next,配置需要进行映射的数据库表。

ps:此处刷新有点缓慢,选择要进行映射的数据表即可。

在Exporters选择相应要生成的代码

可以生成Model , mapping file (hbm) , DAO, annotation code 等等。

点Run生成代码

生成的代码结构如下

(转) Eclipse通过HibernateTools实现逆向生成Hibernate实体类的更多相关文章

  1. eclipse从数据库逆向生成Hibernate实体类

    做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...

  2. [转]eclipse借助hibernate tool从数据库逆向生成Hibernate实体类

    如何从数据库逆向生成Hibernate实体类呢??? 1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库: 然后选择数据库,这里用的oracle, ...

  3. Eclipse从数据库逆向生成Hibernate实体类和映射文件(Eclipse插件系列之HibernateTools)

    ♣下载安装Eclipse插件(HibernateTools) ♣Eclipse连接数据库(Mysql5.7) ♣新建hibernate.properties和hibernate.cfg.xml文件 ♣ ...

  4. 从postgres数据库逆向生成hibernate实体类

    最近整理 一个项目,原先的项目是用的oracle,然而新的项目要用postgresql.将oracle数据库导出之后,通过powerdesigner整理,导出postgresql的脚本,然后在post ...

  5. 使用Hibernate Tools从数据库逆向生成Hibernate实体类

    自动生成model.java.*.hbm.xml 甚至是dao.java.*.ddl.*.html等等.一般也就如下三种方式1. MyEclipse 自带插件2. jboss的 hibernate-t ...

  6. MyEclipse自动生成hibernate实体类和配置文件攻略

    步骤1:找到导航栏里面的window--showView然后输入db brower,打开数据库浏览窗口步骤2:在数据库浏览窗口里只有一个Myeclipse自带的数据库,该数据没有用,我们在空白的地方右 ...

  7. Intellij idea生成Hibernate实体类

    反向生成基于注解的Hibernate实体类 1. 为项目添加Hibernate支持 2. 在IDE右边找到database,然后按照步骤添加数据. 3. 保存后.在主面板左侧有persistence, ...

  8. eclipse中从数据库生成hibernate实体类

    为什么写这篇BLOG,是因为经常有同事或网友问起我hiberante实体类的生成问题.所以下次再有人问我可以省一堆的话了,其实这个真的是很简单.        现在hibernate在项目中的应用是越 ...

  9. 反向生成hibernate实体类和映射文件

    工欲善其事,必先利其器.我们可以使用IDE来根据数据库中的表反向生成实体类和映射文件,虽然这些东西手写也并不是难度很大,但是如果存在大量的简单工作需要我们做,也会显得很麻烦. 写在前面 我们反向生成的 ...

随机推荐

  1. 20155238 2016-2017-2 《JAVA程序设计》第十周学习总结

    教材学习内容总结 # Java计算机网络基础 计算机网络 计算机网络是通过传输介质.通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统.网络编程就就是编写程序使 ...

  2. mfc CListBox

    通过ID操作对象 CListBox(列表框)控件 CListBox类常用成员 CListBox插入数据 CListBox删除数据 CListBox运用示例 一.CListBox类常用成员 CListB ...

  3. BaseProxy:异步http/https中间人

    BaseProxy 异步http/https代理,可拦截并修改报文,可以作为中间人工具.仅支持py3.5+.项目地址:BaseProxy. 意义 BaseProxy项目的本意是为了使HTTP/HTTP ...

  4. Linux环境下使用n更新node版本失败的原因与解决

    Linux环境为CentOS 6.5 64位,阿里云低配服务器...学生优惠,然而下个月即将过期,真是个悲伤的故事 很久之前就安装了node,但是一直没有进行过升级,近日因为将部分异步代码更新为采用原 ...

  5. 基于.NET Standard的分布式自增ID算法--美团点评LeafSegment

    概述 前一篇文章讲述了最流行的分布式ID生成算法snowflake,本篇文章根据美团点评分布式ID生成系统文章,介绍另一种相对更容易理解和编写的分布式ID生成方式. 实现原理 Leaf这个名字是来自德 ...

  6. 高可用Kubernetes集群-14. 部署Kubernetes集群性能监控平台

    参考文档: Github介绍:https://github.com/kubernetes/heapster Github yaml文件: https://github.com/kubernetes/h ...

  7. 在windows10上搭建caffe

    caffe环境的搭建一直是让我最头疼的,最近在Windows10上成功搭建了caffe,在此对搭建过程进行记录. 安装主要是按照caffe github上的安装说明进行的,caffe的github主页 ...

  8. hyperledger-fabirc1.2-ca-server的生产示例

    hyperledger-fabirc1.2-ca-server的生产示例,带TLS 在fabirc-samples/first-network中启动网络,其ca证书是利用crypto的工具生成的,但是 ...

  9. VPS性能测试(3):磁盘IO读写速度、SSD硬盘速度测试

    1.磁盘IO,即输入/输出(Input/Output),这是测试磁盘性能一个重要指标,一些便宜的VPS主机为了降低成本,以大量的低性能的硬盘来充当服务器,导致VPS主机因为IO差而拖了整个主机性能的后 ...

  10. Intellij IDEA 文件修改提示星号

    https://www.cnblogs.com/zheting/p/7594073.html