1.ORM(Object/Relation Mapping):对象关系映射,ORM主要是把数据库中的关系映射为程序中的对象。他是随着面向对象的开发方法发展起来的。
2.关系型数据库是目前大部分企业级应用程序用于存储数据的主要存储系统。在面向对象编程中,业务实体在内存中表现为对象,在数据库中表现为关系数据。
3.面向对象是从软件工程基本原则(如耦合、聚合、封装等)的基础上发展来的,而关系型数据库是从数学理论发展而来的,这两种理论存在显著差别,为解决这一差异,ORM应运而生。
4.ORM一般以中间件的形式存在,他主要实现程序对象到关系数据库数据的映射。
5.目前主流的ORM有:
(1)JAVA:Hibernate ;iBatis ;TopLink
(2).NET: LINQ TO SQL;EF;EntitysCodeGenerate
6.ORM的含义:
上图中O代表程序中的类,即对象,R代表关系数据库的关系表。M代表程序的对象和数据库中关系表的映射。
通过以上表可以看出业务实体在内存中表现为对象,在数据库中表现为关系数据。在应用程序中处理对象是很容易的,但是很难处理关系数据,ORM做到了关系数据和对象之间的映射,他是关系数据和对象之间的一个桥梁。ORM可以通过映射关系自动产生SQL语句。
7.ORM的核心原则
(1)简单性:以最基本的形式建模数据
(2)传达性:数据库结构被任何人都能理解的语言文档化
(3)精确性:基于数据库模型创建正确标准化了的结构
8.ORM的优点:
(1)面向对象编程:不用编码就可以像操作对象一样操作数据库;
(2)提高开发效率:ORM可以自动将实体对象的属性与数据库表中的字段进行映射,不要编写单独的数据访问层来对数据库进行增、删、改、查;
9.ORM的缺点:
(1)对于复杂查询,ORM力不从心;
(2)执行效率低于直接编写的SQL语句;
(3)性能损耗,ORM中的关系映射和关系管理是以牺牲性能为代价的;
10.ORM的使用场景
(1)对性能要求不是很苛刻的程序;
(2)开发时间紧迫时;
(3)有数据库迁移需求时(如由一种数据库更换为另一种数据库);
(4)小型程序和数据量比较小的程序。