(转)使用myeclipse生成实体类和hibernate映射文件
转至:http://blog.sina.com.cn/s/blog_9658bdb40100uiod.html
1.下载并安装myeclipse,如果已经安装,则忽略该步骤;
2.打开myeclipse,打开“myeclipse database explorer"透视图,在DB
Browser新建数据库连接,具体步骤(以连接sybase为例):
1.Driver template下拉列表选择"Sybase Adapter Server
Enterprise";
2.Driver
name任意名称都行,建议与数据库同名;
3.Connection
URL:jdbc:sybase:Tds:LIUBIN-PC:2087/zdplatform,然后填写用户名和密码
(mysql中的URL:jdbc:mysql://localhost:3306/数据库名称)
4.添加连接sybase的数据库连接驱动jar,选择驱动类。记得勾选Save password
5.下一步,选择“Display the selected schemas”
然后点击Add按钮,选择一个你要连接的数据库,最后点完成
6.选择刚刚创建的数据连接,右键->打开连接,如果可以打开则连接创建成功
3.打开myeclipse的java开发透视图,新建一个java项目,然后新建源码目录src,再建立包(小技巧:包名与要复制到的项目的实体包同名);
4.选中刚刚新建的项目,在菜单栏选择MyEclipse->Add
Hibernate Capabilities,根据向导添加hiabernate支持
5.在弹出的对话框中,具体的步骤是:
1.选择与项目中使用的hibernate相同版本,Libraries至少要选hibernate的Core,其它的默认,然后两次下一步;
2.选择Use JDBC
Driver,选择数据库连接的时候,选择之前创建的数据连接,其它的会自动填充,下一步;
3.这一步的时候,建议去掉创建sessionFactory,最后点击完成。
6.再次打开“MyEclipse Database
Explorer”透视图,打开之前创建的数据连接,展开dbo->table
7.选择要映射的表,按住shift键可以多选,然后右键选择的表,点击“Hibernate
Reverse Engineering...”
8.在弹出的对话框中开始配置如何生成实体类和映射文件,具体步骤如下:
1.scr
folder选择之前新建项目的src目录,包就选择在这个目录下建立的实体包名,也可以重新命名,将会自动创建包,勾选Hibernate
mapping file和Java Data Object,其它的都不要勾 选,然后下一步;
2.这一步主要配置所要生成映射文件主键的增长类型,ID
Generator选择:native,然后下一步;
3.选中左边出现的每一个表,在右边的Class
name填写对应的包名和类名,类名按骆驼命名法与表名保持一致,需要注意的是如果该类对应的表有前缀则需要需要保留前缀,如zam,zmd..,最后单击完成。
9.将生成的java类和映射文件复制到项目对应的位置,然后做人为的修改,具体步骤:
1.以一个实体类为例,打开一个实体类,删掉除私有属性外的其它的代码,比如构造方法,set,get方法
2.根据实际情况修改属性的类型,例如id数据类型一般为long,或者外键为其它的实体类都要手动修改;如果有集合属性则都使用Set,属性名称是集合的数据类型+Set,首字母依然小写
3.通常情况,我们会为每一个实体类添加一个布尔类型的selected属性,该属性不做映射,在做全选反选时候使用
4.使用快捷键为每一个属性重新生成get,set方法(按下Alt+Shift+S
然后再按R)。
5.通常对于是有集合属性我们会为每个属性添加create,和add方法,具体看代码:
public ShoppeContractAdjust createShoppeContractAdjust() {
ShoppeContractAdjust shoppeContractAdjust = new ShoppeContractAdjust();
shoppeContractAdjust.setCreatedate(new Date());
shoppeContractAdjust.setLastdate(new Date());
shoppeContractAdjust.setEnabled(1);
shoppeContractAdjust.setShoppeContract(this);
return shoppeContractAdjust;
}
public void addShoppeContractAdjust(ShoppeContractAdjust shoppeContractAdjust) {
if (!AssertValue.isNotNull(this.shoppeContractAdjusts)) {
this.shoppeContractAdjusts = new HashSet<ShoppeContractAdjust>();
}
this.shoppeContractAdjusts.add(shoppeContractAdjust);
}
主要是注意方法的命名、设置默认值、对集合是否为空的判断等
6.如果实现了序列化接口,则最好是生成UID;有些方法最好是加上注释文档,比如创建对象的方法,应该说明设置了哪些默认值,类也应该加上文档注释。
7.修改映射文件。删掉class节点里面的schema、catalog以及对应的属性值,属性数据类型要跟对应的实体一致,如果是基本数据类型则直接
写,如果int,double,如果是包装类型则写完整的报名+类名,例如:java.lang.String。一般的属性像这样配置就够
了:<property
name="" type=""><column
name=""/></property>,特别的,请参照”hibernate实体开发注意事项“文档,以及相应的帮助文档。
(转)使用myeclipse生成实体类和hibernate映射文件的更多相关文章
- 使用MyEclipse生成实体类和Hibernate映射文件
1.打开MyEclipse DataBase Explorer. 如上图,点击图中2便可切换到MyEclipse DataBase Explorer,若没有该图标,则点击图中1,便可选择MyEclip ...
- NHibernate生成实体类、xml映射文件
最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...
- J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式
J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式 反向工程又称逆向工程. 开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事.MyEcl ...
- MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程
前文: hibernate带给我们的O/RMapping思想是很正确的,即从面相对象的角度来设计工程中的实体对象,建立pojo,然后在编写hbm.xml映射文件来生成数据表.但是在实际开发中,往往我们 ...
- MyEclipse从数据库反向生成实体类通过Hibernate的方式----mysql数据库实例
1.我们通过DB与数据库建立连接 2.建立web工程,构建Hibernate框架 3.通过table生成实体类
- MyEclipse从数据库表反向生成实体类之Hibernate方式(反向工程)
一.打开Myeclipse Database Explorer 二.新建[New..] 三.选择数据库,添加驱动 四.测试连接 五.选中数据库中的表单击右键选择[Hibernate Rever..] ...
- MyEclipse数据库反向生成实体类
MyEclipse数据库反向生成实体类 “计应134(实验班) 凌豪” 当我们在开发项目涉及到的表太多时,一个一个的写JAVA实体类很是费事.然而强大的MyEclipse为我们提供简便的方法:数据库反 ...
- Snail—Hibernate反向生成实体类及配置文件
今天学习了Hibernate的反向生成类文件 第一步.打开myeclipse中的database视图,找到对应的表,选中后右键单击. watermark/2/text/aHR0cDovL2Jsb2cu ...
- Eclipse使用hibernate插件反向生成实体类和映射文件
一般dao层的开发是这样的,先进行数据库的设计,什么E-R图之类的那些,然后选择一款数据库产品,建好表.最后反向生成Java实体和映射文件,这样可以保证一致性和便捷性. 如果用myeclipse,逆向 ...
随机推荐
- css背景图片,bootstrap和jquery-ui结合使用,dialog案例
css将一个不能铺满整个屏幕的图片铺满整个屏幕,将一下代码放到body中 <img src="image/login6.jpg" width="100%" ...
- Rails problem
总是wa~ #include <stdio.h> int main() { ]; ], b[]; while(scanf("%d %s %s", &n, a, ...
- iOS frame从导航栏下面开始
iOS7.0 之后,页面布局默认延伸到了手机界面的边缘;导航栏背景成透明颜色. 解决fram从导航栏下面开始方法: 第一种: 将导航栏改成不透明即可 if( ([[[UIDevice currentD ...
- 百度Site App的uaredirect.js实现手机访问,自动跳转网站手机版
以下为代码,可放置在网站foot底部文件,或者haead顶部文件,建议将代码放在网站顶部,这样可以实现手机访问立即跳转! <script src="http://siteapp.bai ...
- NEC学习 ---- 布局 -三列,左侧自适应
效果图: html代码: <div id="demo4"> <div class="g-bd4 f-cb"> <div class ...
- Codevs 1299 切水果
题目链接 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 简单的说,一共N个水果排成一排,切M次,每次切[L,R]区间的所有水果 ...
- 【转】Unity中的协同程序-使用Promise进行封装(三)
原文:http://gad.qq.com/program/translateview/7170967 译者:崔国军(飞扬971) 审校:王磊(未来的未来) 在这个系列的最后一部分文章,我们要通过 ...
- Java 实现MapReduce函数
明白了MapReduce程序的工作原理之后,下一步就是写代码来实现它.我们需要三样东西:一个map函数.一个reduce函数和一些用来运行作业的代码.map函数由Mapper类来表示,后者声明一个ma ...
- MySQL 的 utf8_general_ci 和 utf8_unicode_ci 有什么区别,应如何选择?
一般的解说是 utf8_general_ci 速度较快,utf8_unicode_ci 准确性较好 … 但快在那里,又好在什么地方呢? 首先就其准确性说,这世界上有无数种文字,除了通用的英文使用我们较 ...
- DHCP中继
DHCP中继 要求: 假设公司现在有两个部门分别为 销售部门,生产部门 对这两个部门分配不同网段, 销售部门 192.168.1.0/24 生产部门 192.168.2.0/24 为了节约使用LINU ...