《跟开涛学spring3(第8、9章》.docVIP

  • 89
  • 0
  • 约8.91万字
  • 约 82页
  • 2015-12-11 发布于河南
  • 举报
《跟开涛学spring3(第8、9章》.doc

作者博客:/ 欢迎访问 第八章 对ORM的支持 8.1 概述 8.1.1 ORM框架 ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。 对象与关系数据库之间是不匹配,我们把这种不匹配称为阻抗失配,主要表现在: 关系数据库首先不支持面向对象技术如继承、多态,如何使关系数据库支持它们; 关系数据库是由表来存放数据,而面向对象使用对象来存放状态;其中表的列称为属性,而对象的属性就是属性,因此需要通过解决这种不匹配; 如何将对象透明的持久化到关系数据库表中; 如果一个对象存在横跨多个表的数据,应该如何为对象建模和映射。 其中这些阻抗失配只是其中的一小部分,比如还有如何将SQL集合函数结果集映射到对象,如何在对象中处理主键等。 ORM框架就是用来解决这种阻抗失配,提供关系数据库的对象化支持。 ORM框架不是万能的,同样符合80/20法则iBATIS等等,这些ORM框架各有特色,Spring对这些ORM框架提供了很好的支持,接下来首先让我们看一下Spring如何支持这些ORM框架。 8.1.2 Spring对ORM的支持 Spring对ORM的支持主要表现在以下方面: 一致的异常体系结构,对第三方ORM框架抛出的专有异常进行包装,从而在使我们在Spring中只看到DataAccessException异常体系; 一致的DAO抽象支持:提供类似与JdbcSupport的DAO支持类HibernateDaoSupport,使用HibernateTemplate模板类来简化常用操作,HibernateTemplate提供回调接口来支持复杂操作; Spring事务管理:Spring对所有数据访问提供一致的事务管理,通过配置方式,简化事务管理。 Spring还在测试、数据源管理方面提供支持,从而允许方便测试,简化数据源使用。 接下来让我们学习一下Spring如何集成ORM框架—Hibernate。 8.2 集成Hibernate3 Hibernate是全自动的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库。 Spring2.5+版本支持Hibernate 3.1+版本,不支持低版本,Spring3.0.5版本提供对Hibernate 3.6.0 Final版本支持。 8.2.1 如何集成 Spring通过使用如下Bean进行集成Hibernate: LocalSessionFactoryBean :用于支持XML映射定义读取: configLocation和configLocations:用于定义Hibernate配置文件位置,一般使用如classpath:hibernate.cfg.xml形式指定; mappingLocations :用于指定Hibenate映射文件位置,如chapter8/hbm/user.hbm.xml; hibernateProperties:用于定义Hibernate属性,即Hibernate配置文件中的属性; dataSource:定义数据源; hibernateProperties、dataSource用于消除Hibernate配置文件,因此如果使用configLocations指定配置文件,就不要设置这两个属性了,否则会产生重复配置。推荐使用dataSource来指定数据源,而使用hibernateProperties指定Hibernate属性。 AnnotationSessionFactoryBean:用于支持注解风格映射定义读取,该类继承LocalSessionFactoryBean并额外提供自动查找注解风格配置模型的能力: annotatedClasses:设置注解了模型类,通过注解指定映射元数据。 packagesToScan:通过扫描指定的包获取注解模型类,而不是手工指定,如“cn.javass.**.model”将扫描cn.javass包及子包下的model包下的所有注解模型类。 接下来学习一下Spring如何集成Hibernate吧: 1、准备jar包: 首先准备Spring对ORM框架支持的jar包: 下载hibernate-distribution-3.6.0.Final包,获取如下Hibernate需要的jar包: 下载slf4j-1.6.1.zip(/download.html),slf4j是日志系统门面(Simple Logging Facade for Java),用于对各种日志框架提供给一致的日志访问接口,从而能随时替换日志框架(如log4j、java.util.logging): 将这些jar包添加到类路

文档评论(0)

1亿VIP精品文档

相关文档