PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
本文实例讲述了PHP设计模式之数据访问对象模式(DAO)原理与用法。分享给大家供大家参考,具体如下:
这个数据访问对象模式主要就是描述了如何创建透明访问数据源的对象,这种设计模式对于同时学过PHP和MySQL的人来说,是一个全新的和令人兴奋的概念,并且这种设计模式的目的就是为了解决重复与数据源抽象化这两种特定的问题。
我们可以先创建一个数据访问对象设计模式的对象,这个数据访问对象封装了创建sQL调用、减少实例创建的复杂性和重复以及更新进程的智能方式,并且,这个数据访问对象的使用者不会知道实际使用的表结构和数据库引擎,此外,这个对象应用的方法应当使用逻辑参数,并且应处理SQL语句的创建工作。
数据访问对象模式的额外优点是提供数据库抽象层,现在,应用程序的主要处理代码不再需要考虑数据库引擎或表关系,调用这种对象的公共方法会返回任何数据类型,并且不用考虑内在SQL需要的类型。
然而,管理数据访问对象类中简单性的一个好办法是创建父-子关系。
首先,创建一个基本的父对象。这个对象应当负责数据库连接、抽象地执行查询以及与子对象通信。使用数据访问对象设计模式时,最好开始就将一对一关系的子类与数据库中的表相关联。
并且,这些子类具有必不可少的信息,如表名和主键。此外,子类可能包含一些特定的公共方法,这些方法通过只对子类有意义的方式执行父类的查询。
例如,名为userAddress的子类可能包含一个getAddreddesByZip()方法。将该方法放入父DAO类是毫无逻辑意义的,并且会破坏这个父类希望实现的抽象性。
处理引用特定数据库信息的实体时,最好的做法是创建一个数据访问对象。
了解了上述内容之后,我们就来看下网上所有文章都会有的案例,场景如下:
- 设计一个BaseDao基类,实现数据库操作基本的一些query,insert,update方法
- 在实际使用的过程中,继承BaseDao,就可以直接调用基类的数据库操作方法
代码如下:
BaseDao.php
<?php //数据访问对象模式 //将数据库访问层脱离出来 作为公用的访问接口,方便用户开放,是php中常用的一种设计模式 class BaseDao { private $db; public function __construct($config) { $this->db = mysql_connect($config['user'], $config['pass'], $config['host']); mysql_select_db($config['database'], $this->db); } public function query($sql) { return mysql_query($sql, $this->db); } }
//UserDao 用户数据表的数据操作,继承BaseDao <?php include("UserDao.php"); class UserDao extends BaseDao { public function addUser() { $sql = "INSERT INTO user (username) VALUES ('initphp')"; return $this->query($sql); } } $UserDao = new UserDao; $UserDao->addUser();
好啦,本次记录就到这里了。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
栏 目:PHP编程
下一篇:Yii2框架中一些折磨人的坑
本文标题:PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
本文地址:https://www.xiuzhanwang.com/a1/PHPbiancheng/11021.html
您可能感兴趣的文章
- 04-02关于txt数据库php的信息
- 04-02php本站才可以请求数据 php本地数据库
- 04-02网页里php操作数据库 php网页例子
- 04-02php打印请求数据 php打印输出结果
- 04-02php数据库地址 phpstudy 数据库
- 04-02php插入数据库为乱码 php连接数据库乱码
- 04-02php数据库数据相加 php数据库添加数据语句
- 04-02php数据库输入变量 php里输出数据库数据函数
- 04-02数据权限架构思路php 数据权限设计方案
- 04-02php如何用导入数据 php用来导入其他文件的语句
阅读排行
本栏相关
- 04-02php本站才可以请求数据 php本地数据库
- 04-02关于txt数据库php的信息
- 04-02php打印请求数据 php打印输出结果
- 04-02网页里php操作数据库 php网页例子
- 04-02php插入数据库为乱码 php连接数据库乱
- 04-02php数据库地址 phpstudy 数据库
- 04-02php数据库数据相加 php数据库添加数据
- 04-02数据权限架构思路php 数据权限设计方
- 04-02php数据库输入变量 php里输出数据库数
- 04-02php如何用导入数据 php用来导入其他文
随机阅读
- 01-11ajax实现页面的局部加载
- 04-02jquery与jsp,用jquery
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10SublimeText编译C开发环境设置
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10delphi制作wav文件的方法
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10C#中split用法实例总结