- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
J2EE部分知识点
Hibernate教程 使用Hibernate的7个步骤
使用hibernate的3个准备:1、? 导入Hibernate库(jar包)——》2、添加核心配置文件hibernate.cfg.xml——》3、添加对应表的实体类和映射文件。当准备好了以上的3个准备后,使用Hibernate还需要7个步骤,下边详细介绍一下
1
第一步读取配置Configuration
Configuration cfg=new Configuration().configure();
2
第二步创建sessionFactory
3
第三步打开session
4
第四步开启事务Transaction
5
第五步进行持久化操作,就是增删改查等操作
6
第六步提交事务
7
第七步 关闭资源,也就是关闭session
运行即可,成功
hibernate多对一、一对一、一对多、多对多的配置方法??
hihernate一对多关联映射(单向ClassesStudent)?一对多关联映射利用了多对一关联映射原理?
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一?
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多?
也就是说一对多和多对一的映射策略是一样的,只是站的角度不同?
在一一端维护关系的缺点:?
?*?如果将t_student表里的classesid字段设置为非空,则无法保存?
?*?因为不是在student这一端维护关系,所以student不知道是哪个班的,????所以需要发出多余的update语句来更新关系?
hihernate一对多关联映射(双向ClassesStudent)?
一对多双向关联映射:?
?*?在一一端的集合上使用key,在对方表中加入一个外键指向一一端??*?在多一端采用many-to-one???注意:key标签指定的外键字段必须和many-to-one指定的外键字段一致,否则引用字段的错误???
如果在”一“一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多?的一端来维护关联关系?
关于inverse属性:?
?inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签set上,?
?默认inverse为false,所以我们可以从”一“一端和”多“一端维护关联关系,?
?如果设置成inverse为true,则我们只能从多一端来维护关联关系???注意:inverse属性,只影响数据的存储,也就是持久化???
inverse和cascade?
?*?inverse是关联关系的控制方向??*?cascade操作上的连锁反应?
hibernate一对一主键关联映射(单向关联PersonIdCard)?
一对一主键关联映射:让两个实体对象的id保持相同,这样可以避免多余的字段被创建?具体映射:?
?id?name=id?
??!--?person的主键来源idCard,也就是共享idCard的主键?--???generator?class=foreign?
???param?name=propertyidCard/param???/generator??/id?
?property?name=name/?
?!--?one-to-one标签的含义,指示hibernate怎么加载它的关联对象,默认根据主键加载,?
?constrained=true,?表明当前主键上存在一个约束,person的主键作为外键参照了idCard????--?
?one-to-one?name=idCard?constrained=true/?
hibernate一对一主键关联映射(双向关联PersonIdCard)?
需要在idcard映射文件中加入one-to-one标签指向person,指示hibernate如何加载person?默认根据主键加载?
hibernate一对一唯一外键关联映射(单向关联PersonIdCard)?一对唯一外键关联映射是多对一关联映射的特例?
可以采用many-to-one标签,指定多的一端的unique=true,这样就限制了多的一端的多重性为一?
通过这种手段映射一对一唯一外键关联?
hibernate一对一唯一外键关联映射(双向关联PersonIdCard)?一对一唯一外键关联双向,需要在另一端(idcard),添加one-to-one标签,指示hibernate如何加载?
其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,?
所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式:?
one-to-one?name=pers
原创力文档


文档评论(0)