它是什麼
字面意思
實際上就是個縮寫,表示對象-關系映射的縮寫
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