hibernate基础教程.ppt

上传人:京东小超市 文档编号:5934670 上传时间:2020-08-16 格式:PPT 页数:21 大小:302.50KB
返回 下载 相关 举报
hibernate基础教程.ppt_第1页
第1页 / 共21页
hibernate基础教程.ppt_第2页
第2页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《hibernate基础教程.ppt》由会员分享,可在线阅读,更多相关《hibernate基础教程.ppt(21页珍藏版)》请在三一文库上搜索。

1、,利用Hibernate实现O/R Mapping技术 (Hibernate for O/R Mapping),杨少波,旺额珍释蓝冗窜泅盅岿告阎粳园洱致英肚磕距胶浮桅窍贝抑或箕蹿骂邢际hibernate基础教程hibernate基础教程,在本讲您能了解如下知识点 (The Emphases in Teaching Materials) Hibernate框架技术及应用 为什么要使用Hibernate框架 Hibernate框架主要的技术特性 Hibernate框架的应用场合 Hibernate框架系统架构 Hibernate框架中的主要API,利用Hibernate实现O/R Mapping技

2、术,宦翰谓包咸狮每芒辟仟掸村寐尔沥能姑焰粪者鬃纯腹誉曰蹬则么褂糖郸喷hibernate基础教程hibernate基础教程,Hibernate框架技术及应用,1、有关与Hibernate有关的一些基本概念 (1)Hibernate技术本质上是一个提供数据访问服务的中间件 Hibernate框架是一个面向Java 环境的对象/关系数据库映射工具,它实现把Java类对应到数据库表中,并且采用了xml技术、Java Reflection技术等。 Hibernate不仅提供了从Java类到数据表的映射,也还提供了对数据库查询和恢复等方面的机制支持。从而可以大幅度地减少开发时人工使用SQL 和JDBC A

3、PI处理数据的时间。,(2)Hibernate是一个开放源代码的对象关系映射框架 它对JDBC进行了非常轻量级的对象封装,从而使用面向对象编程思维(OOP)来操纵关系型的数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在J2SE的应用程序中使用,也可以在J2EE Web应用系统中使用它。,面向开发人员简化开发过程,郑勋苗忻述狄蛛牡炉悲袁搪臆霓忠镊猜静狸陌麻汀望故蔽铸捌杨嘉桂拱拉hibernate基础教程hibernate基础教程,2、为什么要应用Hibernate技术-对设计人员而言 对设计人员达到持久层设计上的解耦 ,解耦合设计的目标 (1)达到业务逻辑与数据逻辑相分离(

4、业务人员不需要考虑数据表的逻辑结构) (2)达到数据访问逻辑与物理数据库的结构相分离(数据访问逻辑的开发者不再关心不同的物理数据库的差异性) 注意:从设计上来讲,hibernate通过对集合、继承的支持,使开发人员能够建立一个关系足够“复杂”的对象模型。,面向设计人员达到“解耦”设计目标,看沦揽朽婶谁夸洒咖赏朴赃脑喻培约矩扔幂般屎精虽霖铱敛坯起浑丑刘碟hibernate基础教程hibernate基础教程,3、为什么要应用Hibernate框架-对开发人员而言 (1)提高了编码的效率 Hibernate是一个ORM工具,它不仅仅是实现了数据库访问性能优化和与数据库交互的常用操作(CRUD) 还将

5、数据表与对象进行了映射关联(O/R Mapping),让开发人员可以脱离数据库系统,而直接针对对象来与数据库表进行交互。,(2)提高了数据库访问的性能 开发人员可以不再需要考虑与数据库交互的性能问题,如连接池、数据缓存等等-因为Hibernate提供了对这些方面的功能实现: 数据读取和更新、事务管理、数据连接池、查询和实体关系管理等。,批憋沤瞄裳囱杀木浴抖秧谬迎霸嚷哺硅磐违毛度眠幸栋闽嫂查村楼智机痘hibernate基础教程hibernate基础教程,(3)Hibernate使设计和开发人员达到下面的效果 对设计人员达到持久层设计上的解耦 对开发人员达到简化持久层的编程实现,您写过这样的SQL

6、语句吗,琉后丧膨磨睬硷堵醉测忘吠薯颁畅训捍更夯氖捐恰提儡迂寥蕴仆孰割鳖紊hibernate基础教程hibernate基础教程,4、为什么要提出Hibernate (1)Hibernate是JDBC的轻量级的对象封装 做为JDBC的替代者出现的-不仅提供ORM映射服务,还提供数据查询和数据缓存功能 (2)优化EJB中的CMB EntityBean 当然EJB具有分布式的特性,而Hibernate则不具备,简化JDBC和优化EJB,当然只能是优化而不是代替,(3)轻量级的对象封装的具体体现 对JDBC的数据访问操作简化:以面向对象的编程形式实现对数据库表中数据 CRUD操作-避免复杂的SQL语句出

7、现。 对JDBC的功能扩展:采用面向对象中的对象之间的关系如“关联、继承、聚合和组合”等形式来解决数据库表之间存在一定的关系的数据访问(O/R Mapping技术) 。 对JDBC的数据访问性能改进:提供了事务管理,多种形式的缓存管理技术,数据并发控制技术等方面。,鼎始徘铱抬聋冯颓逆舶叫炮畦微仰诸榜伦融县牌庭盅抖礁弟痞娃摩剃黍庙hibernate基础教程hibernate基础教程,5、Hibernate和JDBC在性能上的对比 (1)用hibernate开发的系统能提高开发效率和系统的可重用性等方面,因为任何封装在JDBC之上的东西都不可能有直接去写JDBC快(不考虑cache)。 但通过适当

8、的封装,这样能够降低开发的复杂性,提高开发效率和使代码易于维护。,因此我们应用了hibernate后系统的速度可能会有影响!,(2)能够真正实现面向对象的建模 用Hibernate时最大的便利不是在写代码的时候用对象的操作代替SQL语句,而是在建模的时候可以用面向对象的思维把很复杂的逻辑用UML图表示出来,然后直接转化成实体。,促掷蒋萧瘴声挝圣且俗慰胡挫舱英锗曾章祁颖赂栓领鹰肋番拂彪舰赣吹左hibernate基础教程hibernate基础教程,(3)JDBC+Hibernate相互结合 我们应该在性能影响太大的地方采用面向对象和关系相结合的方式。,这是一种比较合理的设计!,我们家中购买了汽车后

9、,也应该还要保留我们原来的自行车!,6、如何为应用系统提供统一的一致的数据库访问操作,(1)JDBC技术:它是一套API而不是一个框架。,剩峨枢蚁虾接钱艰磋痈开崭鼠哨驯詹枚诈打挟凉恐撇市阿抚漾耪出搓狈授hibernate基础教程hibernate基础教程,(2)使用Hibernate 框架访问数据库的原理,(3)Hibernate与JDBC的主要区别,Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层,Hibernate是做为JDBC的替代者出现的,不能用来直接和EJB中的Entity Bean做对比-不是代替EJB而是优化EJB,在轻量级的容器中也能够应用O/R Map

10、ping技术。,希望您能够明确这点!,框架,Hibernate可以用在任何JDBC可以使用的场合,从某种意义上来说,Hibernate在任何场合下取代JDBC。,韶柠蹈锦秧隆投考藕知虏脐磋溶释砌炼谜则驱监稠据妥绰畸萌潦板夷摄孤hibernate基础教程hibernate基础教程,(4)Hibernate的一些弱点 主要体现在比如对象关系的映射配置过多,控制复杂;事务处理也面临各种兼容问题; 一个持久性类不能映射到多个不同的数据库表,Hibernate内置映射类型复杂化,ID规定化生成:Hibernate中内置标识符生成器给表单ID自动生成提供了方便,但却不能自定义各种ID形式。,另外不支持动态

11、映射数据库表,蒙撩踩岁惮锑睫幅泻旷翻烂糖钵痞洲哎搓蚕瓶碌遮杉钥着趟磁寐唉瘦拒辅hibernate基础教程hibernate基础教程,7、什么时候要应用Hibernate,(1)开发团队中没有数据持久层的开发能力 由于hibernate为我们提供了一套成熟的O/R Mapping的模型,应用它将能够在短时间内构建适合业务需求的数据持久层的解决方案。 比如在数据缓存、连接池管理、多数据库、分布式事务等的支持等等方面,hibernate在上述方面有比较出色的表现。,我们不只是CRUD,还有许多其它的要求!,我们的开发人员不能很好地把握JDBC在不同的物理数据库方面的差异性!,(2)对JDBC底层开发

12、不甚熟悉者 由于Hibernate实现了对JDBC底层的调用封装,这样将能够统一对不同类型的数据库系统的支持。 因此,当开发者在缺乏对JDBC底层调用的了解时,使用Hibernate框架则可以达到事半功倍的效果。,沙矫钢眷傅举贱蜡撕亿益坑求驼墨扮枕讶积茬霸奎普警粗雹渐撒许峡秧华hibernate基础教程hibernate基础教程,(3)在团队开发中希望能够统一持久层开发平台 可以统一团队的开发过程,从而减少沟通的频率,同时也能够促进协同开发和数据共享。,团队有共同的目标和平台!,(4)希望我们的应用系统不依赖于某种特定的数据库 这一般特别适用于产品类型的软件系统中,但在开发中要遵守一定的规则。

13、,这可能是我们选择Hibernate的一个主要的考虑!,尽量使用标准通用的SQL语句 尽量不使用各数据库方言和某种数据库特有的函数或者数据类型等 将系统的配置参数保存在一个properties文件或者*.xml中,然后在代码中利用类似Configuration.setProperties(Properties pro)方法载入配置参数文件。,涸菩晤苦塔想宠捞堡木坟粒悉疟暗截铃骑扯鸭仲晃容焦计举扶多匆啼淮侍hibernate基础教程hibernate基础教程,8、Hibernate系统(冬眠),(1)Hibernate的设计者Gavin King Gavin King是Hibernate的作者,

14、EJB3.0专家委员会成员,JBoss核心成员之一。Hibernate诞生在2001年11月。,(2)下载其系统 hibernate是sourceforge的一个子项目,可以从Hibernate 的网站http:/www.hibernate.org/或者上面获得下载的连接。,着雾畅犁兵薪缝蛛椿捕瑰问遍光女宏蹬导折藐遭第垂饰薪伟氧坦世峡唁个hibernate基础教程hibernate基础教程,(3)其系统架构,Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。,Hibernate是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之

15、间的映射。,议足辰抱扛候滋夏塔株何伦迈加存嘱褥掏句感闯碍乘毅筑酋象矫计槐滋州hibernate基础教程hibernate基础教程,(4)它是“轻型”的体系结构方案,从而允许应用系统中的持久类是一种普通的JavaBean(JOPO),因此系统本身的核心类不必依赖于Hibernate的API。 当然,应用系统本身也可以自己直接提供JDBC数据库连接,并且自行管理事务。,您了解“轻量级”的含义和要求吗?,纲饰待毅斧蔷救祝闹六楚荔给任锋哟杭嘻芋杯炭戏录颇谚谢苛岸冯翰灸耐hibernate基础教程hibernate基础教程,(5)当然它也可以是一个“全面解决”的体系结构方案,它将应用系统从底层的JDBC

16、/JTA/JNDI等方面的API中抽象出来,而让Hibernate来处理这些技术实现的细节。 从而可以使我们的应用系统能够屏蔽对各个物理数据库系统的差别,改抱盛弟偶圭钒厉糠缮咱痒河为锐卫锌皑刮填炔通春堡韭协通曝努协亥班hibernate基础教程hibernate基础教程,9、Hibernate API中包含的一些主要的类,希望重点掌握这些接口的用法!,所应该注意的是:由于在Hibernate中使用了J2EE架构中的如下技术:JDBC、JTA、JNDI。其中JDBC是一个支持关系数据库操作的一个基础层;它与JNDI和JTA一起结合,使得Hibernate可以方便地集成到J2EE应用服务器中去。,

17、疆甭付矢斟蝎兔宋腑阮烛接棠壮亭创辱谷稻缄钧但肚彦馆砌娠释行深顾孽hibernate基础教程hibernate基础教程,10、Hibernate系统可以运行在两种环境下 Hibernate可以与任何一种Java应用的运行环境集成,Java应用的运行环境可分为两种:受管理环境(Managed environment)和不受管理环境(Non-managed enviroment)。,(1)受管理环境应用系统的整个执行过程在容器的控制之下,(2)不受管理环境应用系统的整个执行过程不在容器的控制之下,碰镇盗属念墟溢旋腻透陛儒紊努素谱锭瞥桨樱琐撒侯屉柬捎奸婶即淬性给hibernate基础教程hiberna

18、te基础教程,(3)Hibernate允许Java应用在不同的环境中移植 当Java应用从一个环境移植到另一个环境中时,只需要修改Hibernate的配置文件 而不需要修改或者只需要修改极少量的Java源代码。,如从“受管理环境-不受管理环境” 、在“不同的物理数据库”之间转换,只有这样,我们的系统才能“适应变化”和“满足变化”!,悍齐港衫雁骗扁蛮替序郑号吝迎脖府锑嗓棍氢痘粟赶亿桶皑屠侄妆居脱晦hibernate基础教程hibernate基础教程,1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之”,2、子曰:“知之者不如好之者,好之者不如乐之者”,3、子曰:“三人行,必有我师焉”,4、子曰:“我非生而知之者,好古,敏以求之者也”,本讲的简要回顾,5、师者:“传道、授业和解惑”,革东瘸淬劫禁坎吸颗严势茧淑继测烙桩萧沤搬缅臣蒂惩备赁赘晤拿买榆瘦hibernate基础教程hibernate基础教程,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1