- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三大框架面试笔记-Hibernate
Hibernate笔记
Hibernate概念:是一个面向JAVA环境得对象/关系数据库映射工具。主要体现:
是开源的持久层框架
ORM映射工具,建立面向对象的域模型和关系数据模型之间得映射
是连接JAVA工程和数据库得中间件
对JDBC得封装,负责对JAVA对象得持久化
在分层结构中处于持久化层,封装了数据库的访问细节,使业务逻辑层更专注实现业务逻辑
作用:
Hibernate对JDBC访问数据库代码进行了封装,大大减少了访问数据库层繁琐得重复代码
Hibernate是一个基于JDBC得主流持久化框架,是一个优秀得ORM实现,很大程度的减少了DAO层得编码工作
Hibernate使用JAVA得反射机制,而不是字节码增强程序类实现得透明性
Hibernate的性能非常好,因为它是一个轻量级框架,映射得灵活性很出色。它支持很多关系型数据库,从一对一到多对多复杂的关系
持久化
封装了数据访问的细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到的目标:
1. 代码重用性高,可完成所有的数据访问操作
2. 如果需要的话,能够支持多种数据库平台。
3. 具有相对独立性,当持久化层变化时,不会影响上层实现。
持久化的概念:实体域对象在内存中创建后,不能永久存在。将实体域对象永久保存起来,就是持久化的过程
ORM
实现思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作
作用:ORM的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作,充当业务逻辑层和数据库层之间的桥梁
运行原理:
运用反射机制,获得Customer对象的Customer.class类
参照映射文件得到Customer类对应的表的信息,以及和Customer类关联的类以及 相应的表信息
根据以上信息生成SQL语句
调用hibernate API,执行该语句
关联关系
单向关联:仅仅建立了A类和B类得关联,但是B类却没有建立到A类得关联关系
双向关联:即建立A类到B类得关联关系,又建立了B类到A类得关联关系
多对一在Hibernate中使用many-to-one来映射多对一关联关系 * name:设定待映射的持久化类的名字。
* column:设定和持久化类的属性对应的表的外键。
* class:设定持久化类的属性的类型。
* not-null:是否允许为空。
一对多在Hibernate中使用set来映射一对多双向关联关系 * name:设定待映射持久化类的属性名。
* cascade:设定级联操作的程度。
* key:子属性:设定与所关联的持久化类对应的表的外键。
* column: 指定关联表的外键名
* one-to-many:子属性:设定所关联的持久化类(集合中存放的对象)。
* class:指定关联的持久化类的类名
注意:Hibernate会自动清理缓存中的所有持久化对象,按照持久化对象的改变来同步更新数据库,因此执行了上述的两条更新语句所以会产生两条update语句
在一对多双向关联时,有一个inverse属性,该属性表示由双方哪一方来维持数据库的关系,通常情况下,都是由多的一方维持。在映射一对多的双向关联关系时,应该在one方把inverse属性设为true,这可以提高性能。
级联删除:如果cascade属性取默认值none,不会自动删除和customer关联的其他持久化对象。如果希望删除customer时,自动删除和customer关联的order对象,可把cascade属性设为delete
多对多多对多的实体关系模型也是很常见的,比如学生和课程的关系。一个学生可以选修多门课程,一个课程可以被多名学生选修。在关系型数据库中对于多对多关联关系的处理一般采用中间表的形式,将多对多的关系转化成两个一对多的关系 * 双向 n-n 关联需要两端都使用集合属性
* 双向n-n关联必须使用中间表
* 集合属性应增加 key 子元素用以映射外键列, 集合元素里还应增加 many-to-many子元素关联实体类
* 在双向 n-n 关联的两边都需指定连接表的表名及外键列的列名. 两个集合元素 set 的 table 元素的值必须指定,而且必须相同注意:对于双向 n-n 关联, 须把其中一端的 inverse 设置为 true, 否则可能会造成主键冲突
一对一一对一关联指两个表之间的记录是一一对应的关系。分为两种:外键关联和主键关联 * 对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加 many-to-one 元素。为 many-to-one元素增加 unique=“true” 属性来表示为1-1关联,
您可能关注的文档
最近下载
- 三一SY235C9I2KS维护保养手册.pdf VIP
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年PPT课件.pptx VIP
- 陶瓷原料及配方基础.ppt VIP
- 茶小绿叶蝉的防治课件.pptx VIP
- 电梯制造与安装安全规范 GB7588-2003.docx VIP
- 2023民航特种车辆操作工民航特种车辆操作工试卷(练习题库).docx VIP
- IEC 60840-2004 额定电压30kV(Um=36kV)以上至150kV(Um=170kV)挤包绝缘电力电缆及其附件试验方法和要求(中文).pdf VIP
- 22G101 三维彩色立体图集.docx VIP
- 混凝土混凝土.ppt VIP
- 沈萍微生物课件第3章b.ppt VIP
文档评论(0)