它是什么
字面意思
实际上就是个缩写,表示对象-关系映射的缩写
O->Object
RM->Relational (关系) Mapping(映射)
代表什么思想
实际上就是一种把数据库映射成对象的想法
数据库的表(table) --> 类(class)
记录(record,行数据)–> 对象(object)
字段(field)–> 对象的属性(attribute)
比如说查询语句 SELECT id, first_name, last_name, phone, birth_date, sex FROM persons WHERE id = 10
对应到代码就是
res = db.执行数据库(sql);
name = res[0]["FIRST_NAME"];
那么ORM的写法就是
p = Person.get(10);
name = p.first_name;
这样的好处就是可以不需要了解数据库底层,因为它不需要接触SQL语句
所以ORM有这样一些优点
ORM生态已经比较完备,有很多的工具支持
天生的MVC,ORM就是天生的Model
可以不写SQL了。
它的缺点来说:
复杂查询很难做到,做到了性能也很差
学习成本比较高
由于不需要接触SQL所以无法定制一些特殊的SQL