ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。
对象与关系数据库之间是不匹配,我们把这种不匹配称为阻抗失配,主要表现在:
其中这些阻抗失配只是其中的一小部分,比如还有如何将SQL集合函数结果集映射到对象,如何在对象中处理主键等。
ORM框架就是用来解决这种阻抗失配,提供关系数据库的对象化支持。
ORM框架不是万能的,同样符合 80/20 法则 ,应解决的最核心问题是如何在关系数据库表中的行和对象进行映射,并自动持久化对象到关系数据库。
ORM解决方案适用于解决透明持久化、小结果集查询等;对于复杂查询,大结果集数据处理还是没有任何帮助的。
目前已经有许多ORM框架产生,如Hibernate、JDO、JPA、iBATIS等等,这些ORM框架各有特色,Spring对这些ORM框架提供了很好的支持,接下来首先让我们看一下Spring如何支持这些ORM框架。
Spring对ORM的支持主要表现在以下方面:
Spring还在测试、数据源管理方面提供支持,从而允许方便测试,简化数据源使用。
接下来让我们学习一下Spring如何集成ORM框架—Hibernate。