欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

跟我学Spring3(8.1):对ORM的支持之概述,spring3orm

来源: javaer 分享于  点击 29012 次 点评:60

跟我学Spring3(8.1):对ORM的支持之概述,spring3orm


8.1  概述

8.1.1  ORM框架

ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。

对象与关系数据库之间是不匹配,我们把这种不匹配称为阻抗失配,主要表现在:

  • 关系数据库首先不支持面向对象技术如继承、多态,如何使关系数据库支持它们;
  • 关系数据库是由表来存放数据,而面向对象使用对象来存放状态;其中表的列称为属性,而对象的属性就是属性,因此需要通过解决这种不匹配;
  • 如何将对象透明的持久化到关系数据库表中;
  • 如果一个对象存在横跨多个表的数据,应该如何为对象建模和映射。

其中这些阻抗失配只是其中的一小部分,比如还有如何将SQL集合函数结果集映射到对象,如何在对象中处理主键等。

ORM框架就是用来解决这种阻抗失配,提供关系数据库的对象化支持。

ORM框架不是万能的,同样符合80/20法则,应解决的最核心问题是如何在关系数据库表中的行和对象进行映射,并自动持久化对象到关系数据库。

ORM解决方案适用于解决透明持久化、小结果集查询等;对于复杂查询,大结果集数据处理还是没有任何帮助的。

目前已经有许多ORM框架产生,如Hibernate、JDO、JPA、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。

本系列:

  • 跟我学 Spring 3(1): Spring 概述
  • 跟我学 Spring 3(2.1):IoC 基础 
  • 跟我学Spring3(2.2):IoC容器基本原理
  • 跟我学Spring3(2.3):IoC容器基本原理
  • 跟我学Spring3(3.1):DI的配置使用
  • 跟我学Spring3(3.2):DI之循环依赖
  • 跟我学Spring3(3.3):更多的DI知识
  • 跟我学Spring3(3.4):DI之Bean的作用域
  • 跟我学Spring3(4.1):资源之基础知识
  • 跟我学Spring3(4.2):内置Resources实现
  • 跟我学Spring3(4.3):访问Resource
  • 跟我学Spring3(4.4):Resource通配符路径
  • 跟我学Spring3(5.1 & 5.2):Spring表达式语言之概述和SpEL基础
  • 跟我学Spring3(5.3):Spring 表达式语言之 SpEL 语法
  • 跟我学Spring3(5.4):在Bean定义中使用EL—跟我学spring3
  • 跟我学Spring3(6.1):AOP的HelloWorld
  • 跟我学Spring3(6.3):基于Schema的AOP
  • 跟我学Spring3(6.5):AspectJ切入点语法详解
  • 跟我学Spring3(6.6): 通知参数 
  • 跟我学Spring3(6.7): 通知顺序
  • 跟我学Spring3(6.8):切面实例化模型
  • 跟我学Spring3(6.9):代理机制
  • 跟我学Spring3( 7.1 ):对JDBC的支持之概述
  • 跟我学Spring3( 7.2 ):对JDBC的支持之JDBC模板类
  • 跟我学Spring3(7.3):对JDBC的支持之关系数据库操作对象化
  • 跟我学Spring3(7.4):对JDBC的支持之Spring提供的其它帮助
  • 跟我学Spring3(7.5):对JDBC的支持之集成Spring JDBC及最佳实践
  • 跟我学Spring3(8.1):对ORM的支持之概述
相关栏目:

用户点评