ORM的全称是Object/Relation Mapping,即对象/关系数据库映射.可以将ORM理解成一种规范,他概述了这类框架的基本特征,完成面向对象的编程语言到关系数据库的映射.当ORM框架完成映射后,程序员即可以利用面向对象程序设计语言的简单易用性,又可以利用关系数据库的技术优势.因此可以把ORM当成应用程序和数据库的桥梁.
当使用一种面向对象的编程语言来进行应用开发时,从项目一开始就采用的是面向对象分析,面向对象设计,面向对象编程,但到了持久层数据库访问时,又必须重返关系数据库的访问方式,这是一种非常糟糕的感觉,于是人们需要一种工具,他可以把关系数据库包装成面向对象的模型,这个工具就是ORM
ORM框架是面向对象程序设计语言与关系数据库发展不同步时的中间解决方案.随着面向对象数据库的发展,其理论逐步完善,最终面向对象数据库会取代关系数据库.只是这个过程不可一蹴而就,ORM框架在此期间会蓬勃发展,但随着面向对象数据库的广泛使用,ORM工具会逐渐消亡.
对于时下所有流行的编程语言而言,面向对象的程序设计语言代表了目前程序设计语言的主流和趋势,其具备非常多的优势,比如:
面向对象的建模,操作.
多态,继承.
摒弃难以理解的过程.
简单易用,易理解
但数据库的发展并未能与程序设计语言同步,而且关系数据库系统的某些优势也是面向对象语言目前无法比拟的:
大量数据查找,排序
集合数据连接操作,映射
数据库访问的并发,事务
数据库的约束,隔离
面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成一种必然.只要依然采用面向对象程序设计语言,底层依然采用关系数据库,中间就少不了ORM工具.采用ORM框架之后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象(CURD),而ORM框架则将这些面向对象的操作转换成底层的SQL操作.
如图所示,ORM工具的唯一作用就是:把持久化对象保存,修改,删除等操作,转换成对数据库的操作.由此,程序员可以以面向对象的方式操作持久化对象,而ORM框架则负责将相关操作转换成对应的SQL(结构化查询语言)操作