【Yii】AR模型和db
来源:互联网 发布:python日期格式 编辑:程序博客网 时间:2024/06/07 18:01
YII中实现两种类型的模型,分别是表单模型和活动记录。在持久化数据方面,YII只实现了活动记录,对于复杂的数据关系可以用框架提供的DAO来自己写model,对应集成doctrine这样的ORM还没有仔细研究过。
ar模型
框架中的model是CModel子类,CModel主要是一些验证与错误处理,并实现迭代器和数组访问接口,活动记录模型CActiveRecord是AR模型的基类。
实例化model有两种方法,直接new一个新的实例,或者用静态方法mode(),后者与前者的区别是略过构造函数执行的代码(主要是避免元数据的多次获取),用静态方法mode()创建ar对象经过一下步骤:
- //$model::model($class)
- $model=self::$_models[$className]=new $className(null);//创建一个mode实例
- new CActiveRecordMetaData($model)//创建元数据类
- //1、获取表模式实例
- $model->getDbConnection() //获取数据库连接
- ->getSchema()//获取数据库schema
- ->getTable($tableName)//获取表shema
- ->loadTable()//获取表对象
- ->findColumns()//获取表中列对象以及其中的约束
- ->findConstraints()//获取表约束(代码实际上是外键关系)
- //2、主键配置
- //3、添加关系(关系包括BELONGS_TO、HAS_ONE、HAS_MANY、MANY_MANY、STAT)
- $model->attachBehaviors($model->behaviors());//添加行为
DAO
ar模型带来的好处是将开发中SQL语句的编写减到最小,ar模型既封装了数据库记录的状态和持久化到数据库的访问方法,也封装了业务逻辑,这在关系不是很复杂的应用中带来的好处显而易见,但如果数据库关系复杂,业务逻辑复杂,有必要将对数据的操作单独提出来,YII中的DAO就是将业务逻辑和数据交换分开,也降低了业务和数据库的耦合性。
YII中DAO基于PDO,统一的接口可以访问不同的数据库管理系统。在框架中CDbConnection、CDbCommand、CdbDataReader、CDbTransaction类分别管了数据量的连接、命令、读取和事务。
YII还对数据库的schema进行映射,一个数据库是对应一个对象,一个表对应一个对象,一列对应一个对象,这些对象分别封装其对应schema的一些操作。
0 0
- 【Yii】AR模型和db
- YII框架分析笔记4:ar模型和db
- Yii AR模型
- Yii模型 AR(ActiveRecord)学习总结
- yii AR模型内置验证类说明
- yii AR
- Yii - AR
- 【Yii】表单模型和验证
- 4:使用数据库的DAO和AR(Yii权威指南)
- Yii AR Model 查询
- Yii AR Model 查询
- Yii AR Model 查询
- Yii AR scope
- Yii AR事务处理
- Yii AR Model 查询
- Yii AR Model 查询
- Yii AR Model 查询
- YII的AR搜索
- 【Yii】表单模型和验证
- Java采用JNI调用VC++生成的dll(Java与C++交互)
- vi编辑器使用技巧
- 如何下载RFC文档?
- Algorithm学习笔记 --- Minimum Inversion Number
- 【Yii】AR模型和db
- 《C和指针》——C语言补漏(指针篇)
- Linux经典实用技巧 -
- java自学之路-----Map jdk1.5加的功能 System、Math、Math、Date
- 【原创】Ubuntu终端窗口大小设置和终端字体大小设置
- Web-Service-调用服务的方式
- vs中控制台程序输出时一闪而过的解决办法
- Linux编程工具C编译器和C编程工具介绍(1) -
- 《C和指针》——C语言补漏(函数篇)