ORM (Object Realtional Mapping)即对象关系映射,它是一种基于关系型数据库的程序技术。ORM 允许你使用类和对象对数据库进行操作,这大大提高了对数据库的控制,避免了直接使用 SQL 语句对数据库进行操作
Web 开发中对数据库的操作是必不可少的,然而每种数据库的操作方式以及用法不尽相同
由于各种框架中ORM 的存在, 如 Python框架的Django模型, PHP语言ThinkPHP框架中的模型, JAVA语言框架MyBatis等为我们操作不同种类的数据库提供了统一的方法, ORM 适配了多种常用的关系型数据库,例如 MySQL、Oracle、Sqlite3,PostgreSQL 等。
ORM 模块确实有诸多的优势,比如:
使用该模块只需要面向对象编程,不需要面向数据库编写代码,对数据库的操作转换为对类属性和方法的操作,不用我们编写各种数据库的 SQL 语句。
实现数据模型与数据库的解耦,屏蔽了不同数据库操作上的差异化,不在关注不同数据库内部的操作细节,通过简单更改配置就可以实现数据库的更换而无需更改代码。
与此同时 ORM 也存在一点不足之处:
相比直接用 SQL 语句操作数据库会有性能损失,因为在映射的过程中 ORM 需要与 SQL 之间进行转换,根据对象的操作转换成 SQL 语句,根据查询结果转换成对象,所以在映射的过程存在性能损失。
但是 ORM 的不足带来的这点性能损失是微不足道的,ORM 的优势还是非常突出的。因为这种对象模型和关系型数据库之间的转换方式,给开发者带来了极大的便捷,所以其它语言开发的框架,对 ORM 也有很多应用,比如 Hibernate、IBATIS、EclipseLink 等。