|
O/R Mapping技术, 说白了, 就是数据关系映射, O, object对象,
R, relationship关系, Mapping, 映射也, 这个技术的一个本质, 就是把关系数据作为一个对象来操作, 直白的说,
比如数据库中的表.
数据库中的表, 具有各个列属性, 该表中的每条记录, 都必须拥有这些列属性, 不能多也不能少,
同时对表的操作也是固定的, 无非是增删改查, 与此相应, 在面向对象编程领域里, 每一个类都可以有属性, 有操作方法, 该类的实例化对象,
都有该类的这些属性, 这些方法. 实际上在这里, 类的结构可以和表的结构一一对应, 类的操作可以和表的操作一一对应, 类的实例化对象,
和表中的记录也是一一对应的.
从而有了 O/R Mapping 技术, O/R Mapping 技术通过把数据库中的表映射为代码中的类, 实现把对表中记录的操作转换成对类对象的操作, 那么, 这个技术有什么好处?
- 程序员可以不用写sql语句, 从而减少了学习和开发的成本.
- 数据库设计和数据层代码可以并行进行, 提高了编程效率.
- 数据操作更强大, 因为实现了对象化查询,
- 程序结构更健壮, 因为数据层把数据已经封装成了对象.
- 程序更安全, 因为用户不能直接执行sql语句.
- 程序更易维护, 因为O/R Mapping在数据库和数据层之间做了抽象
- ...
实际上, 我们可以把 O/R Mapping 看作是一个把关系数据库封装成面向对象数据库的容器,
大家都知道, 关系数据库是第三代数据库, 而面向对象数据库是第四代数据库. 然而 O/R Mapping 也有不少争议,
对于复杂逻辑的数据增删改查, O/R Mapping有明显不足, 比如多表联合查询等等.
不过总体来说, 技术的前进是好处, O/R Mapping 技术最先是在Java里提出来的, 而且如今Java已经有了成熟的 O/R Mapping 框架, 比如JDO 2.0, Hibernate,
在.net里, 微软其实有一个跟O/R Mapping 目标差不多, 但是技术有差异的技术叫做ObjectSpace,
据说在2006的longhorn操作系统里, 将会提供一个成熟的ObjectSpace技术, 比现在有很大改写. 同时,
.net程序员也断断续续的不断推出各种O/R Mapping框架, 网上多的是, 而且关于O/R Mapping的讨论, 网上也到处都有.
很多公司已经在实际应用 O/R Mapping 技术开发项目了, 而我们公司, 使用 O/R
Mapping 开发项目, 沈阳项目是第一个, 或者说以前的三部是带头开始用, 青岛项目实际上也有 O/R Mapping
的色彩, 但是只能说是巧合. 这应该说是和我们公司刚刚开始.net平台的应用有关.
新的平台, 新的技术, 现在的编程, 已经和只要懂编程语言只要懂系统结构的时代越来越远了, 很多东西, 一个人做不来, 一个公司也做不来, 只能大家一起做, 代码英雄的时代, 一去不复返了.
|