理解ActiveRecord模式
来源:互联网 发布:手写笔绘画软件 编辑:程序博客网 时间:2024/06/05 06:25
ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
ActiveRecord的主要思想是:
1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;
2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;
3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
ActiveRecord比较适用于:
1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作;
2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中;
3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了;
这些优点使ActiveRecord特别适合WEB快速开发。
ActiveRecord不适合于:
1. ActiveRecord虽然有业务逻辑, 但基本上都是基于单表的. 跨表逻辑一般会放到当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script)中. 如果对象间的关联越来越多, 你的事务脚本越来越庞大, 重复的代码越来越多, 你就要考虑Domain Model + O/R Mapper了;
ActiveRecord的主要思想是:
1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;
2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;
3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
ActiveRecord比较适用于:
1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作;
2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中;
3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了;
这些优点使ActiveRecord特别适合WEB快速开发。
ActiveRecord不适合于:
1. ActiveRecord虽然有业务逻辑, 但基本上都是基于单表的. 跨表逻辑一般会放到当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script)中. 如果对象间的关联越来越多, 你的事务脚本越来越庞大, 重复的代码越来越多, 你就要考虑Domain Model + O/R Mapper了;
2. ActiveRecord保存了数据, 使它有时候看上去像数据传输对象(DTO). 但是ActiveRecord有数据库访问能力, 不要把它当DTO用. 尤其在跨越进程边界调用的时候, 不能传递ActiveRecord对象。
转载自:http://blog.sina.com.cn/s/blog_60fcb5a10100x984.html
下载源码学习:http://www.oschina.net/project/tag/126/orm?sort=view&lang=22&os=0
0 0
- 理解ActiveRecord模式
- ActiveRecord模式
- ActiveRecord模式
- ActiveRecord模式
- ActiveRecord 模式
- 什么是ActiveRecord模式
- ActiveRecord模式整理
- ActiveRecord
- ActiveRecord
- ActiveRecord
- ActiveRecord插件Db +Record 模式常用方法
- PHP中实现ActiveRecord模式的一些项目总结
- 简单解析YiiFramework分页(ActiveRecord模式)笔记
- 急速WEB框架JFinal及DB+ActiveRecord模式浅析
- [Castle ActiveRecord] 2. ActiveRecord
- 什么是ActiveRecord
- 什么是ActiveRecord
- ActiveRecord 模型
- oracle 在pl/sql能够手动修改数据
- C# wpf 列出文件夹所有文件
- Android知识点
- [java]用HSSFWorkbook来读取excel的内容
- Memcached初步使用
- 理解ActiveRecord模式
- 数组实现栈的代码
- 【SpringMVC】下载功能
- Haskell之Yesod开发–边踩坑边开发(4)
- 引用第三方jar时,混淆代码时的异常(Proguard)
- git命令之git stash apply和 pop 的区别
- iOS 类增加成员变量
- SQL Script for select data from ebs and make a csv file to FTP
- C++ 怎么获得当前操作系统的语言,是英文版本还是简体或繁体