MyEclipse逆向生成实体类和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,真是个大金矿。

参考文章

http://www.ablanxue.com/prone_22000_1.html

http://osacar.iteye.com/blog/1062719

 

抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。
如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。 

时间: 2025-01-02 13:46:10

MyEclipse逆向生成实体类和Hibernate映射文件的相关文章

求 Hibernate 可不可以通过数据库的表自动生成实体类

问题描述 因为这个表中的字段是动态的 ,用户可以自定义创建表 ,现在我想在这个表创建完成后对它进行操作,就是"增删改查"之类的 ,不用SQL语句还有什么方法可以做出来吗 ? 先谢谢各位高手的指点了 ! 解决方案 只知道应用Hibernate能够手动生成实体类和xml映射文件,还真没想过动态生成的事情.实在不行就用纯sql呗.

hibernate-Hibernate可以自动生成实体类的增删改查的方法吗?

问题描述 Hibernate可以自动生成实体类的增删改查的方法吗? Hibernate可以自动生成实体类的增删改查的方法吗? Hibernate可以自动生成实体类的增删改查的方法吗? 解决方案 可以,MyEclipse的反向工程有这个功能 解决方案二: Hibernate自动生成实体类 解决方案三: 可以的. 在Myeclipse中,正逆向工程操作比较简单,而如果是eclipse的话,会比较麻烦,因为必须要先配置下Hibernate环境(同理如果要生成其他持久化层框架的实体类,也需要先配置).

shh项目错误-MyEclipse下生成持久化类,查询出错了

问题描述 MyEclipse下生成持久化类,查询出错了 java.lang.RuntimeException: org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select user0_.userID as col_0_0_, user0_.userName as col_1_0_, user0_.userPassword as col_2_0_ from

Mybatis实体类和表映射问题(推荐)_java

本文是小编给大家带来的mybatis中实体类和表映射问题的知识,学习本教程能够快速帮助我们解决字段名与实体类属性名不相同的冲突问题,需要的朋友一起看看吧! 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('a

mysql生成hibernate映射文件外键不能生成

问题描述 RT我在项目中用powerdesigner建的mysql数据库,主外键在数据库中也有,但是在生成hibernate映射文件时外键不能生成关系(一对多.多对多)什么原因啊 解决方案 解决方案二:那就手动加上呗..我一般都是用myEclipse的逆向工程生成hbm文件解决方案三:关键是我这是生成不了手工配置添麻烦了解决方案四:没道理呀,我配出来的都是有的.怪了...

如何通过DataTable的列名 生成实体类,列名为类的属性 求大神帮忙

问题描述 现在需要DataTable动态生成实体类,有没有什么好的办法,求大神帮忙 解决方案 解决方案二:动态生成实体类?根据列名映射到POCO属性可以做到,但动态创建实体类?那只能dynamic了解决方案三:"动态生成实体类"的概念是什么呢?是写一个编写代码的机器狗?解决方案四:引用2楼sp1234的回复: "动态生成实体类"的概念是什么呢?是写一个编写代码的机器狗? 比如我将datatable作为参数传入方法,方法返回一个类的实体,里边的字段为这个类的属性解决方

ASP.NET中实现根据匿名类、datatable、sql生成实体类

  这篇文章主要介绍了ASP.NET中实现根据匿名类.datatable.sql生成实体类,这个小小工具类非常实用,使用起来也很方便,需要的朋友可以参考下 在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到

mybatis-myeclipse10 +mybaits生成实体类时候出错

问题描述 myeclipse10 +mybaits生成实体类时候出错 myBatis Generator run complete with Warning Reason :Generation Occured Project E:does not exits Project E:does not exits Project E:does not exits

数据库表生成实体类

问题描述 各种框架,不少都是数据库表生成实体类,讨论一下为何要把表对应一个类?直接sql操作数据库表也不错呀 解决方案 解决方案二:引用楼主zhuce2015的回复: 各种框架,不少都是数据库表生成实体类,讨论一下为何要把表对应一个类?直接sql操作数据库表也不错呀 把表生成实体类,可以List<实体类>在程序中使用,这样的话遍历List<>的时候可以通过实体类找到属性名称直接sql填充到DataTable,遍历DataTable的时候,你要么通过列索引.要么通过列名,不如使用实体