ORM

来源:互联网 发布:天下粮仓知乎 编辑:程序博客网 时间:2024/06/18 11:32
对象关系映射(ORM)提供了概念性的、易于理解的模型化数据方法。ORM方法论基于三个核心原则:简单——以最基本的形式建模数据;传达性——数据库结构被任何人都能理解的语言文档化;精确性——基于数据模型创建正确标准化的结构。
一般的ORM包括以下四部分:
  一个对持久类对象进行CRUD操作的API;
  一个语言或API用来规定与类和类属性相关的查询;
  一个规定mapping metadata的工具;
  一种技术可以让ORM的实现同事务对象一起进行dirty checking, lazy association fetching以及其他的优化操作。
对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。


从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。

你在DAL中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。

  如果打开你的程序,看看DAL代码,你肯定会看到很多近似的通用的模式。以保存对象的方法为例,你传入一个对象,为SqlCommand对象添加SqlParameter,把所有属性和对象对应,设置SqlCommand的CommandText属性为存储过程,然后运行SqlCommand。对于每个对象都要重复的写这些代码。


  除此之外,还有更好的办法吗?有,引入一个O/R Mapping。实质上,一个O/R Mapping会为你生成DAL。与其自己写DAL代码,不如用O/R Mapping。你用O/R Mapping保存,删除,读取对象,O/R Mapping负责生成SQL,你只需要关心对象就好。

ORM框架

大概地说,这类框架的是为了将类对象和关系建立映射,在应用程序和数据库的IO之间建立一个中间层,在程序中只需要直接操作对象(数据库中对象的增删改查),而不用去关心数据库中表的列啊,关系啊什么的

举个例子:
以前一直自己一个人在家吃饭,需要自己去买米买菜,然后自己再做,做完了还得收拾,觉得好麻烦,但是也得做,没办法啊,苦逼的单身- -
这也就相当于传统的操作关系(未使用ORM);
而终于有一天,发现去饭馆吃饭很方便,不用操心买菜啊什么的,也不用操心吃完还得去收拾一大堆什么的,点好菜,吃好付钱走人就行了 - 什么做饭烧菜的事儿都有别人去做好,具体人家怎么做,就不用管了 - -
这饭馆就相当于是一个ORM的映射框架,为你处理那些烦琐的无聊的事,只把最重要的环节--吃饭--让你来做
而点菜就相当于你在做ORM映射的配置,你告诉饭馆你要吃点啥,饭馆就根据你的需要去配菜准备,做好了就给你送上来!


0 0
原创粉丝点击