在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。
本文eclipse从数据库逆向生成Hibernate实体类来举例:
在Myeclipse中,正逆向工程操作比较简单,而如果是eclipse的话,会比较麻烦,因为必须要先配置下Hibernate环境(例如安装hibernate-tools插件)。
逆向步骤如下:
1.首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库:
首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库:
2.然后选择数据库,这里用的oracle,然后给个名字,如MyOracle。
3.点击下图中按钮,新建一个数据库驱动的配置。
选择数据库版本,这里是oracle 10g版本,可以为该配置另起个名字。
然后选择相应数据库版本的jar包。
下面就是依据自身情况填写数据库连接配置了。
接下来,完善Properties下的General选项卡内容,同样是连接数据库的信息,配置完后点击Test Connection按钮测试是否能连通数据库。
测试连接成功,如图:
然后点击Next,再确认无误后,单击Finish。
4.添加hibernate配置:
打开window>show view>other,选择hibernate菜单下的hibernate config,如下图,
然后在console选项卡里出现了hibernate configuration选项卡,如下图:
5.如果从未配置过hibernate,那么这里就是空,空白处右击,选择add一个即可,如果配置过了,就会显示配置文件。下面看下如何add一个新的配置。右击空白处,如下图:
选择add之后,出现如下图的界面:
上面是Main选项卡的配置,重点是Database connection的配置,用的就是之前第2步配置的数据源。如果想要hibernate的配置文件,可以在Configuration file选项里,让eclipse生成新的配置文件,不生成也可以。
6.然后再如下图所示,配置Option选项卡的dialect,
最后点击OK,即可,就会生成一条新的hibernate config。
7.在工具栏添加hibernate相关的按钮:
进入后:
勾选hibernate code generate,点击OK,会多了一个下图中的按钮:
8.配置hibernate code generation:
选择上图中的Hibernate Code。。。选项,
只能上述方式填写,main选项卡,console configuration就是之前配置的hibernte config,reveng.xml的话得setup,create new,如下图:
要选择xml文件的存放位置,之后点击next,而不是finish,会按照之前的hibernate config来找数据源,出现下图:
一开始左侧列表为空,需要点击refresh,然后选择数据库,选择表,include就可以了,这就是要生成的数据库表的实体类和配置文件。finish。
9.再配置,exporters选项卡:
勾选生成哪些文件。
10.最后配置common选项卡,字符集:
点击run,出现了生成的文件:
。
要说明的一点是,如果要反向生成关联,比如one-to-many这些,那么底层的数据库建表的时候就得添加foregn key约束,否则生成的配置文件不会有关联的信息,只是分离的一张张表。
如果建表的时候有外键约束,最终的一对多关联就是双向的一对多关联。
可能出现的问题:
1.connection profile types只有两个选项,没有oracle和mysql等类型
原因:eclipse未安装数据库插件
解决方法:
菜单栏里选择 帮助->安装新软件
如下图 填入 http://download.eclipse.org/releases/galileo
一路next就哦了,只是这个下载速度有点慢,得等很长时间。
2.多生成了一个classId的文件,例如要生成视图类Pat,总是生成一个Pat和PatId的class类,而且Pat中有PatId类的对象,PatId中却包含数据表的全部属性...
原因:
使用Hibernate工具会自动检测数据库的表中有没有主键(PRIMARY_KEY),当发现没有主键时就会自动给你多生成一个java文件,也就是两个文件。如果你的数据表有主键,就只会生成一个java文件,并且有的时候你在生成的时候有一个步骤需要选择的,否则也生成两个文件
解决方法:打开数据库工具,修改表结构,被ID字段设置为PRIMARY_KEY主键即可
3.要生出注解的实体对象怎么办
解决办法:勾上这三个选项就可以了
总结:
步骤大致是
1.配置data source
2.配置hibernate
3.配置hibernate code geration
4.run。