ORM
面向对象编程
我们都知道,面向对象是把所有实体看成对象(object),而关系型数据库则是采用实体之间的关系(relation)连接数据。
而ORM的意义就是通过实例对象的语法,完成关系型数据库操作的技术。
ORM 把数据库映射成对象:
数据库 | 对象 |
---|---|
数据库的表(table) | 类(class) |
记录(record,行数据) | 对象(object) |
字段(field) | 对象的属性(attribute) |
优点
- 数据模型都在一个地方定义,更容易更新和维护,也利于重用代码
- ORM 有现成的工具,很多功能都可以自动完成,易用性高
- 它迫使你使用 MVC 架构,ORM 就是天然的 Model,最终使代码更清晰
- 基于 ORM 的业务代码比较简单,代码量少,语义性好,容易理解
缺点
- ORM 库不是轻量级工具,需要花精力学习和设置
- 对于复杂的查询,ORM 有可能不支持,也可能性能不如原生的 SQL
- ORM 抽象掉了数据库层,开发者无法了解底层的数据库操作,也无法定制一些特殊的 SQL