@
chuck1in ORM 是不限语言的一种思路,核心思想是想用面向对象来取代关系运算(虽然它名字叫“对象关系映射”)。所以你用面向对象的思路去思考它,暂时把关系运算的思路放一边比较好。
另外 ORM 的思路从现在看是失败的,因为对象关系并不能真的替换掉关系运算,所以 ORM 这个东西和 SQL 之间存在阻尼,这就是用起来各种不舒服的核心所在。现存的 ORM 也就剩下 java 的 hibernate
和.net EF 了,其它的认真来说都不能算 ORM ,是基于 active record 思路(创始者是 ruby on rail )的 sql 强化工具。对关系数据库的访问方式最终还是回归到 sql 本身了。
当然,最近国内又有一些作者开始折腾了,但是他们的思路也不是 ORM 的思路,它们的思路是希望通过链式 api 调用,使其能映射几乎绝大部分 SQL 的想法,老实说我不是很看好,因为我觉得复杂 sql 最合适的思路还是直接写 sql 。
总之,ORM 的核心是 O ,而不是 R ,但是这个思路没走通,之后的绝大部分关系数据访问库,都倾向于 R ,分歧不过是怎么把用 R 的这个过程搞的漂亮点