代码改变世界

【原】为什么要ORM?

2010-05-22 09:57  bugfly  阅读(438)  评论(2编辑  收藏  举报

   恩,这个标题是当时我不懂ORM在百度上冒出来的第一个搜索念头,然而我当时一直没尝试认真去了解这个听了不少次的名词。还是那句吧,带着疑问,去研究一样东西才能体会这个过程的所得。

   废话了那么多,其实这篇博只是为了告诉你WHY,具体的HOW就没有例子了。

   到底为什么要ORM呢?我觉得ORM是一个从WEB上诞生的东西,理解它其实很简单,想想,你在利用三层架构开发的时候,要为相应的表写对应的实体数据类,当只有几个表的时候,当然不觉得这是一种负担,试试极限化所面对的问题,你的数据库有100个表,这时意味着你要写100个对应这些表的实体数据类,数量庞大可想而知了,而这时ORM的出现可以解决这个问题,通过ORM框架,自动映射出对应的表对象,减少了不必要的操作,恩这就是ORM的其中一个好处,然而我觉得这个不是它最吸引人的地方,它最吸引人的地方是,隔离高级语言和结构化语言的耦合,所谓的高级语言可能是C#,VB,Java等,结构化语言一般是SQL。通过ORM,我们程序员可以直接对对象进行操作达到对数据库操作的目的,意味着你无需要了解SQL语言是怎么对数据库的访问了,可能你还是体现不到它的好处,我举个例子,现在你们的项目是使用SQL Server2005数据库的,那么你肯定要对SQL要有所了解吧?至少要会写存储过程,SQL语句什么的吧?但你的老板说他要改用Access,或者改用Oracle,甚至有可能是XML。。。数据源的基本结构是不变的,然而它的种类却变了,如果没有ORM,你要对这些不同的数据源的访问语法有所了解,要腾出时间去学习它们,有可能这些数据源访问方式你从来没接触过,但你却要去研究,因为要针对地修改实现方式满足项目要求,如果你还是没看懂它的好处,那么只能说你对自己太自信了,有时过于自信是一种没前瞻性的表现,好好理解以上的每句话。

     这里我把ORM的好处总结起来:

      一、减轻程序员的工作负担。

      二、把数据库技术的变化隔离出程序开发。

 以上是本人愚见,有什么观点错误,望能指点。