码迷,mamicode.com
首页 > 其他好文 > 详细

数据操作的几个名词即model、dal、dao、orm和ar 解释

时间:2019-01-21 22:48:33      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:理解   操作   语句   ror   增删改查   接口   sdn   引用关系   ESS   

     第一,model

      首先,model是mvc中的m,也就是模型。它指的是读取数据和改变数据的操作,它是与业务逻辑息息相关的操作。比如一个简单的功能"把学生添加到班组",就可以理解为一个数据处理过程,它向外暴露一个接口,外面的数据不需要知道这个接口具体是怎么实现的,也不需要知道它在各个数据库下的不同表现,我们只需要知道模型层暴露出来的接口即可。

     第二,dal和dao 

      如果我们在模型里面直接写sql代码,那么当业务逻辑改变的时候,我们就需要开发者重写sql语句,这样,我们可以把这一层抽出来,也就是所谓的数据访问层,也就是通常我们所说的dal。其中dal是database   access  layer的简写,也就是"数据库访问层",它是一个概念,也可以理解为一个方案,它没有指定具体的实现,它是这一层的统称。

      这样设计的好处就是我们的业务逻辑不用去调用具体的数据访问层的实现,也就是说,不管我们的业务逻辑怎么变,我们的接口是不变的。使用dal的优势主要有:①开发人员可以只关注某个结构中某一层的实现。②我们可以很容易用新的实现来替换原有层次的实现。③降低层与层之间的耦合性。④有利于标准化。⑤有利于各层逻辑的复用。

       而dao则是dal的一种实现方式,它的思想是我们把对数据源的访问操作封装在一个公共的api中,也就是说,我们建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。而dao则是database  access   object的简写,也就是"数据库访问对象",通常可以理解为用面向对象的方式去访问数据库。

      我们在需要修改业务逻辑的时候,我们直接调用这些dao类,它包括了如何访问数据库和数据的增删改查的很多代码,它们可以返回数据,而且我们无需在业务逻辑层中写这些代码。

      第三,orm和ar

      首先说的是,orm也是一种对数据库访问的封装,但是orm和dao不一样的而是,它强调的是系统应该层次分明,它就像一种工具一样,而且有着非常成熟的产品。它的好处就是在于我们可以将我们程序中的数据对象自动地转化为关系数据库中对应的表和列,数据对象间的引用关系也可以通过相应的工具来转化为表之间的连接操作。

     通过orm,我们几乎可以不写任何的sql语句,创建一张表,声明一个类,然后我们就只需要和这个类的实例进行交互即可,至于这个对象里的数据怎么操作,我们通常不用关心,这一点框架一般会帮我们搞定的。

      而ar则是一种orm模式,它是伴随着ror火起来的,它负责把持久化的代码集成到数据对象中,也就是说,这个数据对象也知道如何把自己持久化到数据库中。它和传统的orm有区别的地方在于,传统的orm会把数据对象和负责持久化的代码分开,数据对象只是一个单纯的包含数据的结构体,在模型层和orm层之间传递。

      在ar中,模型层本身就继承了orm的功能,它们即代表实体,又包含业务逻辑,也是数据对象,并且负责把自己存储到数据库中,当然,对于持久化这一块的代码应该在父类中有对应的实现。

       也就是说,orm模型中定义了表映射到类,记录映射到对象,字段映射到属性。配合命名规则和配置惯例,我们就能够很大程度的实现模型的操作,而且简单易懂。但是ar的主要思想还封装了部分业务逻辑,而且它自己负责把自己持久化,也就是说,通常ar更加适用于单表操作。

感谢!作者。????
---------------------
作者:辛星
来源:CSDN
原文:https://blog.csdn.net/xinguimeng/article/details/48027019
版权声明:本文为博主原创文章,转载请附上博文链接!

数据操作的几个名词即model、dal、dao、orm和ar 解释

标签:理解   操作   语句   ror   增删改查   接口   sdn   引用关系   ESS   

原文地址:https://www.cnblogs.com/WANGXINCHUAN/p/10301296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!