当前位置: 首页 > news >正文

MyEclipse从数据库反向生成实体类之Hibernate方式

转自:http://apps.hi.baidu.com/share/detail/33629923

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,真是个大金矿。

相关文章:

  • 城市选择案例
  • 《深入浅出 Java Concurrency》——原子操作
  • 第18章 认识系统服务(daemons)
  • 《深入浅出 Java Concurrency》—锁机制(一)Lock与ReentrantLock
  • iOS开发中那些高效常用的宏
  • 《深入浅出 Java Concurrency》—锁机制(二) AQS
  • codevs4416 FFF 团卧底的后宫
  • 《深入浅出 Java Concurrency》—锁机制(三) 加锁的原理 (Lock.lock)
  • 1055. 集体照
  • 《深入浅出 Java Concurrency》—锁机制(四) 锁释放与条件变量 (Lock.unlock And Condition)
  • Java四种引用类型+ReferenceQueue+WeakHashMap
  • 《深入浅出 Java Concurrency》—锁机制(五) 闭锁 (CountDownLatch)
  • 《深入浅出 Java Concurrency》—锁机制(六) CyclicBarrier
  • PHPMySQL 语法
  • 《深入浅出 Java Concurrency》—锁机制(七) 信号量 (Semaphore)
  • [PHP内核探索]PHP中的哈希表
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • Android Volley源码解析
  • CentOS 7 防火墙操作
  • Promise面试题2实现异步串行执行
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Sass 快速入门教程
  • vue的全局变量和全局拦截请求器
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 跳前端坑前,先看看这个!!
  • 微信小程序设置上一页数据
  • 学习笔记TF060:图像语音结合,看图说话
  • Java数据解析之JSON
  • Java性能优化之JVM GC(垃圾回收机制)
  • postgresql行列转换函数
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​ubuntu下安装kvm虚拟机
  • # 达梦数据库知识点
  • #include
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (¥1011)-(一千零一拾一元整)输出
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (function(){})()的分步解析
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (接口自动化)Python3操作MySQL数据库
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (区间dp) (经典例题) 石子合并
  • (十一)手动添加用户和文件的特殊权限
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ***检测工具之RKHunter AIDE
  • *Django中的Ajax 纯js的书写样式1
  • .java 9 找不到符号_java找不到符号
  • .NET BackgroundWorker
  • .net Stream篇(六)
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法