`
alexcheng
  • 浏览: 183851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
Active Record - An object that wraps a row in a database table or view, encapsultes the database access, and adds domain logic on that data.
Active Record包含了数据和行为。Active Record在本质上是Domain Model,只不过这个领域模型中的类和底层数据库的记录结构非常相似。Active Record的数据结构应该和数据库的紧密匹配:每个域对应数据库表中的一列。域的类型和数据库SQL提供的保持一致,并不需要在这个阶段进行类型转换。
Active Record类应该提供如下的方法:
  1. 从SQL的结果集中构造实例。
  2. 构造一个新的实例以供以后插入数据库使用。
  3. 包装了常用的SQL查询的静态查找方法,返回Active Record对象。
  4. 更新数据库和插入Active Record对象中的数据。
  5. 获取和设置域。(getter & setter)
  6. 实现某些领域逻辑。

Active Record适合于领域逻辑不太复杂的情况,简单的CRUD操作。Active Record很容易构建,也容易理解,不过问题在于只适合于Active Record对象和数据库表直接对应的情况;另外一个问题是它把对象设计和数据库设计耦合起来。

 

如果使用Transaction Script的话,Active Record是个很好的模式。可以从Gateway开始,然后逐步的重构,而得到Active Record。

分享到:
评论

相关推荐

    Pro Active Record. Databases with Ruby and Rails

    ### Pro Active Record: Databases with Ruby and Rails #### 书籍概览 《Pro Active Record: Databases with Ruby and Rails》是一本由Kevin Marshall、Chad Pytel和Jon Yurek共同编写的关于Ruby on Rails(简称...

    Active Record模式使用问题详解.docx

    Active Record 是一种设计模式,常用于简化对象与数据库之间的交互,尤其在ORM(对象关系映射)框架中。它将数据库中的每一行记录映射为一个对象,通过对象的方法直接执行CRUD(创建、读取、更新、删除)操作。在...

    种使用MVC架构开发的Trello,使用Active Record进行数据库查询.zip

    在本文中,我们将深入探讨如何使用MVC(Model-View-Controller)架构开发一个类似Trello的应用,并结合Active Record进行数据库查询。MVC是一种广泛应用于Web应用开发的设计模式,它将业务逻辑、数据处理和用户界面...

    Rails 3中的Active Record的查询变化.doc

    在Rails 3中,Active Record查询接口发生了显著的变化,这些变化主要是为了提高代码的可读性和性能,引入了懒加载(Lazy Loading)的概念。本文将详细介绍这些查询方式的转变及其背后的动机。 首先,我们注意到旧版...

    Active Record所引用的程序集

    Active Record是Ruby on Rails框架中的一个核心组件,它实现了对象关系映射(ORM)系统,使得开发者能够以面向对象的方式处理数据库操作。在.NET环境中,虽然没有原生的Active Record库,但存在类似的概念和库,如...

    active_record.cr, Active Record Pattern的实现.zip

    active_record.cr, Active Record Pattern的实现 active_record Active Record Pattern的实现。不要与 ruby的activerecord混淆: 目标是将 true 转换为面向对象技术,并将 true 用于 Active Record Patter

    state_machines-activerecord, StateMachines Active Record 集成.zip

    state_machines-activerecord, StateMachines Active Record 集成 StateMachines Active Record 集成Active Record 4.1 集成添加对数据库事务的支持,自动保存记录,命名范围,验证错误。依赖项Active Record 4.1 ...

    active_record_upsert, Rails 5/Active Record 5的更新更新.zip

    active_record_upsert, Rails 5/Active Record 5的更新更新 ActiveRecordUpsertpostgre 9.5 和 Rails 5/ActiveRecord 5的真正更新。 在冲突时使用进行更新。的主要点是否在单个记录上使用 ON CONFLICT DO U

    yii2-save-relations-behavior, 验证并保存相关的Active Record 模型.zip

    yii2-save-relations-behavior, 验证并保存相关的Active Record 模型 Yii2 Active Record 保存关系行为自动验证和保存相关的Active Record 模型。 特性支持 hasMany() 和 hasOne() 关系现有的相关模型一起工作支持...

    Ruby on Rails Guides_ A Guide to Active Record Associations.pdf

    Ruby on Rails Guides_ A Guide to Active Record Associations.pdf

    Castle Active Record (.net 2.0) 开发资料集合

    内含net2.0开发包(dll+Castle.ActiveRecord.Generator.exe免安装),教程,... 如果觉得好的话,请您给顶一下。 castle active record(AR)在.Net2.0下支持泛型,这极大的方便了我们创建强类型集合以及对对象的强类型操作.

    composite_primary_keys, Active Record的复合主键支持.zip

    composite_primary_keys, Active Record的复合主键支持 用于ActiveRecords的复合主键摘要ActiveRecords infamously不支持复合主键。 这个 gem,composite_primary_keys或者CPK简短地扩展了ActiveRecord以支持组合键...

    Patron-ActiveRecord:JAVA中的Active Record持久性模式示例

    "Patron-ActiveRecord" 这个标题指的是一个项目或者库,它在JAVA中实现了Active Record持久性模式。Active Record是面向对象数据库映射(Object-Relational Mapping, ORM)的一种实现方式,它将数据库操作与业务对象...

    yii2中使用Active Record模式的方法

    Active Record模式是一种常用的数据库编程范式,它允许开发者通过对象来直接操作数据库数据,而不需要编写SQL语句。在Yii2中,Active Record模式是通过Gii代码生成器和迁移(migration)功能得到支持和加强的。 ...

    Pro.Active.Record.Databases.with.Ruby.and.Rails

    ### Pro Active Record Databases with Ruby and Rails #### 概述 《Pro Active Record Databases with Ruby and Rails》一书由Kevin Marshall、Chad Pytel和Jon Yurek共同撰写,旨在帮助开发者掌握如何使用Ruby及...

    activerecord-session_store:从Rails中提取的Active Record的会话存储

    由Active Record类支持的会话存储。 提供了一个默认类,但是任何使用文本session_id和data属性将对象鸭式键入Active Record Session类就足够了。 安装 将此宝石包括到您的Gemfile中: gem 'activerecord-session_...

    baby_squeel:Active Record 4和5的富有表现力的查询DSL

    但是,Squeel猴子修补了Active Record的内部组件,因为它旨在增强现有的API,并将其包含在Rails中。 但是,这种包含从未发生过,它使Squeel容易受到Active Record中任意更改的破坏,最终烧毁了维护者。 BabySqueel...

    armg:将 MySQL 几何类型添加到 Active Record

    将 MySQL 几何类型添加到 Active Record。 安装 将此行添加到应用程序的 Gemfile 中: gem 'armg' 然后执行: $ bundle 或者自己安装: $ gem install armg 用法 require 'active_record' require 'armg' ...

Global site tag (gtag.js) - Google Analytics