DAO模式与ORM框架的联系与区别

是你自己理解错了吧,DAO(似乎不能称之为模式,不知道你听谁说的DAO模式.我嘞个去)跟ORM貌似不能这样比较的 DAO全称:data access objectORM: object relation mapping.一般不叫DAO模式,只是叫DAO层而已,用来跟数据库打交道.而ORM是对象关系映射,像比较常用的ORM框架有hibernate ,ibatis.就算是一个应用中采用了ORM框架,也是需要DAO层的,只不过采用了后是跟ORM框架打交道,由ORM跟数据库打交道,而没有采用,就是DAO层直接访问数据库,仅此而已..

ORM, Object-Relational Mapping, 对象-关系数据库映射在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了.ORM框架就是用于实现ORM技术的程序.常见的ORM框架有:Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等.

我之所以称ORM为反模式的原因是因为,反模式的作者定义了

Active Record(AR)是一个对象-关系映射(ORM)技术.每个AR 类代表一张数据表(或视图),数据表(或视图)的字段在 AR 类中体现为类的属性,一个AR 实例则表示表中的一行.常见的CRUD 操作作为 AR 的方法实现.比如: Data access object(DAO,数据访问对象),比如可以建立在PHP的数据对象(PDO)扩展上,使得用单一的统一接口可以访问不同的数据库管理系统(DBMS).比如: 找出区别.

就相当于一个模版,你按照sqlalchemy的语法写入IO语句,然后sqlalchemy帮你读入数据库.

ORM就是实体关系映射用ORM的一个好处是可以完全以面向对象的思路来处理数据库的CRUD操作,不用自己创建实体和给实体对象赋值.对数据库的操作,ORM框架都封装好了,很省事儿.但开发大型应用的时候ORM的封装会带来效率的降低.

没什么大区别,在处理代码的时候是没有区别的,唯一的区别就是逻辑上的合理性.打个比方,一个人有一部手机,在人也就是用户model 中,你肯定要用hasOne 而不是belongsTo,因为你不能说人是属于手机(虽然也可以这样,但不符合常

ORM框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中. 只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中.当前ORM框架主要有三种:Hibern

对象关系映射 分层: DAO,Service,View

orm并不是指的三个框架,orm翻译过来叫对象关系映射,涉及到对象和数据库表的映射的所有框架都是orm框架,这一类框架主要用于将对象持久化到数据库,比如hibernate框架就是orm框架,

相关文档

dao模式的意义
dao实现的是什么
什么是dao模式
什么事dao模式
什么是dao模型
dom全称
dao模式的实现方法
dao全称
dao操作
el全称
mybatis的dao
jstl全称
dao方法
service和dao的区别
un全称
实现dao方法的增删改查
电脑版