对象关系映射(英语名:Object Relational Mapping,简称ORM,或O/RM)是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。[1][2] 对象关系映射工具最早出现于1990年,截至2009年,Hibernate的轻量级对象关系映射模型逐步确立了在Java ORM架构中的领导地位。[3][4]对象关系映射主要解决的问题包括:对象的属性与关系数据库表中列的不匹配问题、对象间的关系与关系数据库中表间关联不匹配问题、对象的继承在关系数据库中不支持的问题。[5]基于Hibernate的对象关系映射策略大致可以分为继承关系映射和关联关系映射。[6]
对象关系映射引入,使系统的层次性更加清晰,降低了系统的耦合度,方便了系统的设计,提高了系统的可扩展性。同时,采用对象关系映射模式,数据业务得以从业务逻辑中提取出来,大大加快了系统的开发进程,这种新的设计模式已成为企业级应用的主流。[7]
概念引入
对象关系映射是一种程序技术,是随着面向对象的软件开发技术的发展而产生的。[2][8]面向对象的开发方法是企业级应用开发环境中的主流方法,关系数据库是企业级应用环境中永久存放数据的流数据存储系统。[8][a]对象和关系数据是业务实体的两种表现式,业务实体在内存中表现为对象,在数据库中表现为关系数据。[8]内存中的对象之间存在关联和继承关系,而在数据中,关系数据无法直接表达多对多关联和继承关系。[8]因此,对象关系映射系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。[8]