hibernate自动生成表 反向生成

推荐这篇日记的豆列
······反向工程 逆向工程 开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事。MyEclipse提供简便的方法:反向数据库 步骤大致如下: 第一步: window--&open Perspective--&MyEclipse Java Persistence 操作后会出现一个视图DB Brower:MyEclipse Derby 在空白区点击右键,新建一个数据库对象。我用的是mysql,其实我一直想用oracle之类的,只是机子内存小,又懒得倒腾别的,结果截个图吧: 左边的属性按照自己使用的数据库填就行了,左边部分是我建好以后的结果,数据库名叫shop,有个user表 是专门这次测试用的
第二步: 新建一个WEB项目 然后选中项目右键--&MyEclipse--&add Hibernate Capabilities 如果需要用到在实体类上添加注释的话那么选中紧挨着的add Hibernate Annotations Support(据说现在都用annotations了就选上吧!!)
然后下一步选中一个目录存放自动生成hibernate.cfg.xml文件,一般毫无例外的放在src根目录下,下一步选中一个DB Driver中我们第一步建立的那个(对我来说是com.mysql....反正就是自己建的那个呗),然后下一步选中一个目录存放自动生成的HibernateSessionFactory工具类 ,结果出来以后我看了一下,这个hibernateSessionFactory工具类就是一个拿Session的单例,还有一些其它关闭session之类的方法,一看便知。下图是生成的配置文件:
第三步反向生成实体类 到DB Brower中找到要反向的表选中并且点击右键---&Hibernate Reverse Enginnering 看选项:java src folder 源码包,不用多解释,java package&&存放将要反转出来的实体类,选择目录(应该是提前建好的com.xxx.model之类的包);Create pojo&&db。。。这个选项选中,就是我们建立从表到简单java 对象(即pojo)的配置,把下面的add hibernate mapping annotations to pojo的选上,其它不管,这个选项用来&添加映射注解到pojo对象上&,它上面的那个选项用来创建xml的,据说不太用了,就用annotation吧!
这样应该就够了,下一步 看图:type Mapping要选上hibernatetypes,这样这些注解都是来自 javax.persistence.*了 (刚观察过!) id generator 看下拉列表就知道是配置id生成策略的 那两个enable 是说映射关系发现(detection),明白了吧?英文好就是沾光,不用像我一样还得查字典了。
下一步:没啥理解不了的 动手点点就知道了
直接完成,发现代码很漂亮,注释很完美,而且肯定没有错误,几分钟都能搞定数十个表,不得不感叹myeclipse,真是个大金矿。
阅读(...) 评论()eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释) - 推酷
eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO。意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计。
1. 1.5倍工作量,浪费时间。(时间对公司来说很重要)
2. 无法保证两边映射一致。因为两边都是自己设计的,那么就需要人为保证映射关系统一,会有隐患。
3. 开发、维护上都不利。因为如果任意一方因某些原因需要改用,那么经常要两边都要改,这样的话映射不一致的可能性不仅更大,而且效率低下。而如果利用正逆向工程的话,则很容易解决。
所以,因项目原因我便研究了下由数据库逆向生成Hibernate实体类的方法。
在Myeclipse中,正逆向工程操作比较简单,而如果是eclipse的话,会比较麻烦,因为必须要先配置下Hibernate环境(同理如果要生成其他持久化层框架的实体类,也需要先配置)。
有关eclipse配置Hibernate环境的方法这里就不叙述了,上网搜吧,我给提供个参考链接:
那么下面讲述正题:如何从数据库逆向生成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按钮
最终生成效果如下:
已发表评论数()
&&登&&&陆&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见通过Hibernate框架让数据库里面的表反向生成model和DAO,但是为什么通过DAO却不能正确的插入到数据库当中-中国学网-中国IT综合门户网站
> 通过Hibernate框架让数据库里面的表反向生成model和DAO,但是为什么通过DAO却不能正确的插入到数据库当中
通过Hibernate框架让数据库里面的表反向生成model和DAO,但是为什么通过DAO却不能正确的插入到数据库当中
转载 编辑:李强
为了帮助网友解决“通过Hibernate框架让数据库里面的”相关的问题,中国学网通过互联网对“通过Hibernate框架让数据库里面的”相关的解决方案进行了整理,用户详细问题包括:MyEclipse2013通过Hibernate框架让数据库里面的表反向生成model和DAO,但是为什么通过DAO却不能正确的把数据插入到数据库当中。,具体解决方案如下:解决方案1:save successful& Transaction tr =););save mit().debug(& } catch (RuntimeException re) {save failed& session.error(&); try { getSession().flush().error(& tr.debug(& throw re.save(transientInstance).debug(&quot.beginTransaction(): public void save(Hobby transientInstance) { } catch (RuntimeException re) { try { Session session = getSession();saving User instance& log.close();save failed&quot: public void save(User transientInstance) {; } } 修改后.debug(&saving Hobby instance&, re)原来的代码为;).save(transientInstance), re)通过对数据库的索引,我们还为您准备了:一般整合的话都会把连接数据库的信息写入Spring配置文件中,也可以通过属性文件的方式加载数据源等相关配置信息。===========================================有nhibernate=========================================== Hibernate操作主要思想是:将数据库表中的列和实体类的属性,通过映射文件对应通过封装好的操作方法,直接调用增删改查可以说是全自动化===========================================1、编码格式的问题,在代码里面添加转码的代码( String name = new String(request.getP... ISO-8859-1"),"UTF-8"); ),关键是转换后的编码格式要与数据库的一致,然...===========================================先建表 可以用myeclipse反转生成类 还可以生成映射文件 先建类 可以设置hibernate属性动态生成表 但映射文件要自己选 所以两种方式都可以 用哪种随你自己选===========================================.equals(name) && "123".equals(password)){ } //如果连接了数据库,可以这... 密码,然后封装成User对象,返回给服务层的方法,在action里边去调用服务层的方法. DA...===========================================还有Spring的AOP,在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catc... 说了半天没用,自己做一个Struts + Hibernate和Struts + Spring + Hibernate的例子比较一...===========================================也可能是你的查询语句的问题,用Hibernate的话,hql语句"select * from 表名;" 是错误的, " from 表名;" 才是正确的。。。=========================================== 首先你的实体要设计的对,然后左边的对象连接的是左边对象里的属性,比如batch left join batch.batchDetail,你的查询条件是什么呐,也没说清啊。就给你个思路吧===========================================500是语法错误。 去daoimp里面看看哪里写错了。用了log4j没?用了的话,控制台会出现报错信息。===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
Eclipse中反向生成hibernate实体类+jpa注释(图解).doc
Eclipse中反向生成hibernate实体类+jpa注释
Eclipse中反向生成hibernate实体类+jpa注释&&
加载中...!如果长时间没有加载,请刷新页面
下载本文档需要登录,并付出相应积分
文件大小:440.50 KB
所需积分:& 5
Eclipse中反向生成hibernate实体类+jpa注释(图解).doc
文件大小:440.50 KB &&&&所需积分:& 5
本次下载将耗费您5个积分(说明:不需要积分就可以下载)重复下载将不扣积分!积分充值->
相关资讯  — 
相关讨论话题  — 
浏览:9277次&& 下载:0次
上传时间: 15:08:41
同类热门文档
6069次浏览 &17次下载
14852次浏览 &27次下载
12122次浏览 &26次下载
11986次浏览 &14次下载
2416次浏览 &3次下载
4114次浏览 &1次下载
相关经验 -
& 1人评&12页
& 8人评&59页
& 0人评&3页
& 6人评&17页
& 11人评&6页
OPEN-OPEN, all rights reserved.}

我要回帖

更多关于 hibernate逆向生成 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信