其实,我认为,关系数据库与OO没有阻抗,这一观点是从外部(业务的角度)来看程序和系统,这样来看的话们我们把程序理解成一个故事,应当保存就保存,应当获取就获取,保存和获取是故事中的一些具体情节而已。
说到CRUD,就不是这个视角了,外部看,只有“将某个数据保存起来”和“取出来某个数据”而已。而这个“情节”,是永远需要的。
但“CRUD”却不是永远需要的,况且,即便从内部看,很多大型系统,根本就没有CRUD,只有“Save”和“Query”,所谓的“Update”,只是“Mark”和“Add”,因为要保存每一个数据的原始状态数据,不可能删除和覆盖;“Delete”更是不可能的,从来不会有需要删除的数据,即便是错误的,可以归档,可以Mark。
是否一天天陷身在系统内部,会有“不识庐山真面目,只缘身在庐山中”?从外部看,当行则行,当止则止,根本就没有矛盾。
转帖内容如下:
Pere Villega 的博文内容:
大部分信息系统都是持久化存储信息然后查询获取,这大部分是通过RDBMS完成的,不久NoSQL运动促使其成为一个关系数据库的替代者,总得来说,我们需要一个存储区域来保存数据。
但是,这不代表没有问题,流行的开发模型是基于面向对象编程语言配以关系数据库,这种组合有致命的问题:对象和关系阻抗不匹配性,换句话说,他们并不能在一起工作得很好,这其中有许多原因。
这不是一个新问题,人们也在艰难努力提供新的解决方案以消除痛苦,从一个开发者角度看,ORM可能缓解一下这种不匹配问题,即使只是稍微低,像Hibernate这样的工具负责与关系数据库层打交道,这样开发者不必花费时间在这上面,但是这并不完美,由于抽象泄漏定律使得问题变得棘手,任何使用过Hibernate的人都发现通过其框架实现的查询都不够完美,那就意味着开发者必须钻研得很深以便知晓如何告诉框架让它按自己的意图行事,这也通常意味着你进入了底层低级别,包括数据库层,阻抗不匹配问题又冒出来了。
这样,ORM作为一个完整的解决方案失败了。
banq的博文:
相关推荐
对orm框架的详细分析 适合初学者 很有用哦
分析整理了基于android orm框架的性能比对及功能完整示例,主要包括:Provider ORMLite GreenDao XutilsDao 完整示例,可直接在eclipse中运行
能实现基本的数据库操作能实现基本的数据库操作
Sqlite ORM 是一个简单的C#类,对Sqlite的操作进行了封装,主要功能包括:表定义、生成,访问,更新等,其中,支持,多表的连接操作,语法类似Linq语法,使用非常方便,附加了使用说明文档。 例如,添加记录操作为...
这里面包括了Hibernate和MyBatis的实现ORM思想的原理,以及讲解了什么是ORM思想。仿照Hibernate自定义了一个简单的增删改查的ORM框架,还有测试代码。
ORM框架 C#.NET ORM框架ORM框架 C#.NET ORM框架ORM框架 C#.NET ORM框架ORM框架 C#.NET ORM框架
orm4es是一个Elasticsearch的ORM工具,它可以生成简单的查询对象.它本身非常简单,也很容易使用;代码生成通过freemark完成,它会自动解析es index 的mapping设置,根据mapping生成与index对应的java Bean,使用生成...
ORM对象关系映射。。ORM对象关系映射。。太详细了。。最全的介绍。
ORM映射与WEB的应用ORM映射与WEB的应用ORM映射与WEB的应用ORM映射与WEB的应用ORM映射与WEB的应用ORM映射与WEB的应用
简单易用的基于SQLite3的C++ ORM框架
对象角色建模方法是一种完全面向交流的面向事实概念建模方法,目前已发展到2.0版,已应用于本体论工程,因此需要对其进行形式化以分析其本体表达能力。Halpin定义了一种知识表达语言KL,并使用KL形式化分析了早期...
工具简介:自己实现的简单的ORM工具,使用到的技术:JDBC+java反射机制。 简单的文档:rar解压后,DOC目录下:K-ORM.DOC
spring-orm.jar
hsweb-easy-orm, 简单的orm工具,为动态表单而生
系统架构+ORM+设计模式 系统架构+ORM+设计模式
选择Dos.ORM的理由: 1.上手非常简单,0学习成本。使用方便,按照sql书写习惯编写C#代码。功能强大。 2.轻量级,只有一个dll文件(不到200KB),相比于EF,NHibernate这些重量级的ORM框架,实在是太小。 3....
简单讲述orm使用,对于学习orm的很有帮助。
Dos.ORM 代码生成器 实体生成器
SqlSugar ORM工具箱2.2.7z
Net下ORM框架概述,仅供参考,ORM是企业开放的热门技术