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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


开发项目涉及到的表太多,一个一个的写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,真是个大金矿。


转载于:https://my.oschina.net/shaonan/blog/552290

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP的定时器系列 — 超时重传定时器(有图有代码有真相!!!)

转载 主要内容&#xff1a;TCP定时器概述&#xff0c;超时重传定时器、ER延迟定时器、PTO定时器的实现。 内核版本&#xff1a;3.15.2 我的博客&#xff1a;http://blog.csdn.net/zhangskd Q&#xff1a;一条TCP连接会使用多少个定时器呢&#xff1f; A&#xff1a;目前的答案…

Python try/except/finally等

Python try/except/finally等 [代码块]x abc def fetcher(obj, index): return obj[index] fetcher(x, 4) 输出&#xff1a; File "test.py", line 6, in <module> fetcher(x, 4) File "test.py", line 4, in fetcher retur…

TCP的定时器系列 — SYNACK定时器

转载 主要内容&#xff1a;SYNACK定时器的实现&#xff0c;TCP_DEFER_ACCPET选项的实现。 内核版本&#xff1a;3.15.2 我的博客&#xff1a;http://blog.csdn.net/zhangskd 在上一篇博客中&#xff0c;已经连带介绍了SYNACK定时器的创建和删除&#xff0c;所以本文直接从它的…

android -- 蓝牙 bluetooth (二) 打开蓝牙

4.2的蓝牙打开流程这一部分还是有些变化的&#xff0c;从界面上看蓝牙开关就是设置settings里那个switch开关&#xff0c;widget开关当然也可以&#xff0c;起点不同而已&#xff0c;后续的流程是一样的。先来看systemServer.java的代码&#xff0c;蓝牙服务开启的地方&#xf…

开始nodejs+express的学习+实践(8)

为什么80%的码农都做不了架构师&#xff1f;>>> 1.session使用 介绍的非常详细&#xff1a; http://www.cnblogs.com/chenchenluo/p/4197181.html 对比我们的app.js需要引入express-session模块和使用这个模块&#xff0c;在package依赖&#xff0c;并加载。 我们修…

TCP的定时器系列 — 保活定时器(有图有代码有真相!!!)

转载 主要内容&#xff1a;保活定时器的实现&#xff0c;TCP_USER_TIMEOUT选项的实现。 内核版本&#xff1a;3.15.2 我的博客&#xff1a;http://blog.csdn.net/zhangskd 原理 HTTP有Keepalive功能&#xff0c;TCP也有Keepalive功能&#xff0c;虽然都叫Keepalive&#xff0c…

浅谈 Scala 中下划线的用途

Scala 作为一门函数式编程语言&#xff0c;对习惯了指令式编程语言的同学来说&#xff0c;会不大习惯&#xff0c;这里除了思维方式之外&#xff0c;还有语法层面的&#xff0c;比如 underscore&#xff08;下划线&#xff09;就会出现在多种场合&#xff0c;令初学者相当疑惑&…

maven项目部署到linux上的奇葩问题

2019独角兽企业重金招聘Python工程师标准>>> 经常会遇到这样子的问题&#xff0c;maven项目在本地的eclipse配置的好好的&#xff0c;结果一到服务器就运行不起来。 当然遇到这种情况&#xff0c;我们首先会想到环境变量和相关的路径问题&#xff0c;但是当这两个条…

TCP的定时器系列 — 零窗口探测定时器(有图有代码有真相!!!)

转载 主要内容&#xff1a;零窗口探测定时器的实现。 内核版本&#xff1a;3.15.2 我的博客&#xff1a;http://blog.csdn.net/zhangskd 出现以下情况时&#xff0c;TCP接收方的接收缓冲区将被塞满数据&#xff1a; 发送方的发送速度大于接收方的接收速度。 接收方的应用程序未…

java中XPATH操作xml,非常便捷

<?xml version"1.0" encoding"UTF-8"?> <MessageList><item type"1"><template_id value"p2ItJPj0taTTP4QRXP-z51nYuD3aDNhgvLOusWGY4p0"/><topcolor value"#173177"/><first value&quo…

【python】r+,w+ 全局变量

来源&#xff1a;http://www.educity.cn/wenda/352188.html r&#xff1a;可读可写&#xff0c;若文件不存在&#xff0c;报错w: 可读可写&#xff0c;若文件不存在&#xff0c;创建文本模式&#xff1a;遇换行符时根据操作系统不同自动转换换行符&#xff0c;比如读文件时遇\n…

网络:TCP通讯之 time_wait 状态

基于TCP协议的通讯流程1、TCP建立连接2、TCP断开连接3、TCP状态转换TCP状态解释&#xff1a; SYN-RECVD&#xff1a;再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED&#xff1a;代表一个打开的连接 FIN-WAIT-1&#xff1a;等待远程TCP连接中断请求&#xff0…

linux下echo与time服务的程序实现

一、针对ECHO服务的TCP客户软件的实现 1.网络拓扑结构&#xff1a; 2.源码&#xff1a; 1 #include <stdio.h>2 #include <stdlib.h>3 #include <unistd.h>4 #include <string.h>5 #include <stdarg.h>6 #include <sys/types.h>7 #include…

iOS UI-AlertView(警示框)和ActionSheet(选择框、操作表单)

1 #import "ViewController.h"2 3 interface ViewController ()<UIAlertViewDelegate,UIActionSheetDelegate>4 5 end6 7 implementation ViewController8 9 #pragma mark - 生命周期10 - (void)viewDidLoad {11 [super viewDidLoad];12 // 创建展示Al…

Linux高性能服务器编程:进程池和线程池原理及应用(有图有代码有真相!!!)

一、问题引入 在前面编写多进程、多线程服务器时通过动态创建子进程和子线程来实现并发服务器&#xff0c;这样做有以下缺点&#xff1a; 1&#xff09;动态创建进程、线程将会比较耗费时间&#xff0c;将导致较慢的客户响应。 2&#xff09;动态创建的子进程只为一个客户服…

Linux:多进程、多线程服务器的实现解析(有图有代码有真相!!!)

一、问题引入 阻塞型的网络编程接口 几乎所有的程序员第一次接触到的网络编程都是从 listen()、send()、recv()等接口开始的。使用这些接口可以很方便的构建服务器 /客户机的模型。 我们假设希望建立一个简单的服务器程序&#xff0c;实现向单个客户机提供类似于“一问一答”的…

数据结构:神奇的B树实现解析(有图有代码有真相!!!)

一、B树引入 二叉搜索树、平衡二叉树、红黑树都是动态查找树&#xff0c;典型的二叉搜索树结构&#xff0c;查找的时间复杂度和树的高度相关O(log2N)。 1&#xff09;数据杂乱无章-------线性查找--O&#xff08;n&#xff09; 2&#xff09;数据有序-------二分查找 ---O(lo…

Linux:dup/dup2 文件描述符重定向函数(有图有代码有真相!!!)

一、dup/dup2 有时我们希望把标准输入重定向到一个文件&#xff0c;或者把标准输出重定向到一个网络连接。系统调用dup和dup2能够复制文件描述符。dup返回新的文件文件描述符&#xff08;没有用的文件描述符最小的编号&#xff09;。 dup2可以让用户指定返回的文件描述符的值…

Linux:I/O多路转接之select(有图有代码有真相!!!)

一、select引入 一次 I/O 分为两个部分&#xff1a;1&#xff09;等待数据就绪 2&#xff09;进行数据转移 1、select 原理&#xff1a; select的原理就是减少等待数据就绪的比重&#xff0c;巧妙的利用等待队列机制让用户进程适当在没有资源可读/写时睡眠&#xff0c;有资…

Linux: I/O多路转接之poll(有图有代码有真相!!!)

一、poll()函数解析 不同与select使⽤用三个位图来表⽰示三个fdset的⽅方式&#xff0c;poll使⽤用⼀一个 pollfd的指针实现。pollfd结构包含了要监视的event和发⽣生的event&#xff0c; 不再使⽤用select“参数-值”传递的⽅方式。同时&#xff0c;pollfd并没有最⼤大数量限…