利用Hibernate实现ORM技术.ppt

利用Hibernate实现ORM技术

何家琦 在J2EE平台中优化JDBC的两种技术实现方式 (1)保持JDBC的工作原理不变的方式 Apache DBUtil和Spring JDBC 模板技术等 (2)采用OR Mapping技术 Hibernate框架技术及应用 为什么要使用Hibernate框架 Hibernate主要的技术特性 Hibernate框架的应用场合 Hibernate框架系统架构 Hibernate框架中的主要API 在本讲你能了解如下知识点 1、Hibernate本质上是一个提供数据访问服务的中间件 (1)它是一个面向Java 平台的对象/关系数据库映射工具 它实现把Java类对应到数据库表中,并且采用了XML和Java 反射等技术。 (2)Hibernate是一个开放源代码的对象关系映射框架 它对JDBC进行了非常轻量级的对象封装,从而使用面向对象编程思维(OOP)来操纵关系型的数据库。 (3)Hibernate可以应用在任何使用JDBC的场合 既可以在J2SE的应用程序中使用,也可以在J2EE Web应用系统中使用它。 2、为什么要应用Hibernate框架----对设计人员而言 对设计人员达到持久层设计上的解耦 ,解耦合设计的主要目标如下: (1)达到业务逻辑与数据逻辑相分离——业务层开发人员不需要考虑数据的逻辑结构、而只关心业务数据实体。 (2)达到数据访问逻辑与物理数据库的结构相分离——数据访问逻辑的开发者不再关心不同的物理数据库之间的差异性、以及如何兼容这些差异。 注意: Hibernate还允许设计人员使用面向对象的方法建模数据、并且能建立出一个关系足够“复杂”的对象模型。 面向设计人员达到“解耦”设计目标 3、为什么要应用Hibernate框架----对开发人员而言 (1)提高了编码效率 Hibernate是一个ORM工具,以对象的操作代替和简化复杂的多表联合的数据访问操作实现, (2)提高了系统对数据库访问的性能和质量 提供了如连接池、数据缓存等技术的支持; 提供有对数据的完整性和一致性、事务(包括分布式)管理、数据之间的关系等方面的支持。 (3)Hibernate使设计和开发人员达到下面的效果 对设计人员达到持久层设计上的解耦 对开发人员达到简化持久层的编程实现 4、为什么要提出Hibernate (1)Hibernate是JDBC的轻量级的对象封装 做为JDBC的替代者出现的---不仅提供ORM映射服务,还提供数据查询和数据缓存功能 (2)优化EJB中的CMB EntityBean 当然EJB具有分布式的特性,而Hibernate则不具备。 简化JDBC和优化EJB 当然只能是优化而不是代替 5、Hibernate对JDBC轻量级的对象封装的具体体现 (1)对JDBC的数据访问操作编程实现进行简化 (2)对JDBC的功能扩展 采用面向对象中的如“关联、继承、聚合和组合”等关系形式解决数据库多表之间存在的各种关系的数据访问(O/R Mapping技术) 。 以面向对象的形式实现对数据库进行CRUD操作---避免复杂的SQL语句出现。 (3)对JDBC的数据访问性能改进 提供了事务管理,多种形式的缓存管理技术,延迟加载和数据并发控制技术等方面。 6、应用Hibernate和JDBC在系统的数据访问性能上的对比 (1)用Hibernate开发的系统能提高开发效率和系统的可重用性 因为任何封装在JDBC之上的东西都不可能有直接应用JDBC API实现那样快(不考虑应用cache)。 但Hibernate通过对JDBC的封装,能够降低开发的复杂性,并提高开发效率和使代码更易于维护。 (2)能够真正实现“面向对象”的建模和数据访问 用Hibernate时最大的便利不是在写代码的时候用对象的操作代替SQL语句,而是在建模的时候可以用面向对象的思维把很复杂的逻辑用UML图表示出来,然后直接转化成实体。 (3)JDBC+Hibernate相互结合 我们应该在性能影响太大时转而应用JDBC API实现。 这是一种比较合理的设计! 我们家中购买了汽车后,也应该还要保留我们原来的自行车! 7、Hibernate框架目前的一些弱点 (1)目前只支持数据库表的映射,不支持对XML中的数据的映射,而Sun的JPA可以对XML数据进行映射。 (2)不支持动态映射数据库表 9、应用Hibernate系统(冬眠) (2)下载其系统 hibernate是sourceforge的一个子项目,可以从官方网站/上面获得下载的连接。 (3)应用Hibernate框架技术示例 10、Hibernate系统架构 (1)Hibernate内部封装了通过JDBC访问数据库的操作,向上

文档评论(0)

1亿VIP精品文档

相关文档