资讯专栏INFORMATION COLUMN

PHP设计模式-DAO (Data Access Objects) 数据访问对象模式

shadajin / 1692人阅读

整理一下自己的学习Aaron Saray 写的PHP设计模式一些demo和自己的理解。大佬看完如果发现鄙人理解有误请立即指出,感谢拍砖,跪求鞭打

/**
 * DAO (Data Access Objects) 数据访问对象
 * -------------------------------------
 * ** 来自说明 **
 *
 * 数据访问对象设计模式描述了如何创建提供透明访问任何数据源的对象
 *
 * 目的是解决下列两种特定的问题:
 *     1. 重复
 *  2. 数据源抽象化
 *  数据访问对象模式提供数据库抽象层
 *  现在,应用程序的主要处理代码不再考虑数据库引擎或表关系
 *  调用这种对象的公共方法会返回任何数据类型,不用考虑内在SQL所需的类型
 * 
 * ===================================== 
 * ** 应用场景 **
 *
 * 数据访问
 * 
 * -------------------------------------
 * 
 * @version ${Id}$
 * @author Shaowei Pu <54268491@qq.com>
 */

abstract class baseDao{
    /**
     * [$_connection 连接对象]
     * @var [type]
     */
    private $_connection;

    /**
     * [__construct 实例化数据库连接]
     * @author         Shaowei Pu 
     * @CreateTime    2017-02-22T17:52:04+0800
     */
    public function __construct(){
        try{        
            $this->_connection = new PDO("mysql:dbname=mysql;host=localhost","root","pushaowei");
            $this->_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }catch(PDOException $e){
            die("error:".$e->getMessage());
        }   
    }
    /**
     * [feach description]
     * @author         Shaowei Pu 
     * @CreateTime    2017-02-22T18:01:48+0800
     * @return                              [type] [description]
     */
    public function fetch( $value , $key = ""){
        // SQL START
        $sql = "SELECT * FROM ".$this->_tablename." WHERE ".$key." = "".$value.""";
        // 输出
        $dispose = $this->_connection->query($sql);
        return $dispose->fetch(PDO::FETCH_ASSOC);        
    }

}
class selectHandle extends baseDao{
    /**
     * [$_tablename 得到表名]
     * @var string
     */
    protected $_tablename = "db";

    /**
     * [getValue description]
     * @author         Shaowei Pu 
     * @CreateTime    2017-02-22T18:06:58+0800
     * @param                               [type] $value [description]
     * @return                              [type]        [description]
     */
    public function getDbValue( $value ){
        $result = parent::fetch( $value, "Host" );
        return $result;
    }
}

$select = new selectHandle;
var_dump($select->getDbValue("localhost"));

/* 
+----------------------------------------------------------------------
|    array (size=22)
|      "Host" => string "localhost" (length=9)
|      "Db" => string "sys" (length=3)
|      "User" => string "mysql.sys" (length=9)
|      "Select_priv" => string "N" (length=1)
|      "Insert_priv" => string "N" (length=1)
|      "Update_priv" => string "N" (length=1)
|      "Delete_priv" => string "N" (length=1)
|      "Create_priv" => string "N" (length=1)
|      "Drop_priv" => string "N" (length=1)
|      "Grant_priv" => string "N" (length=1)
|      "References_priv" => string "N" (length=1)
|      "Index_priv" => string "N" (length=1)
|      "Alter_priv" => string "N" (length=1)
|      "Create_tmp_table_priv" => string "N" (length=1)
|      "Lock_tables_priv" => string "N" (length=1)
|      "Create_view_priv" => string "N" (length=1)
|      "Show_view_priv" => string "N" (length=1)
|      "Create_routine_priv" => string "N" (length=1)
|      "Alter_routine_priv" => string "N" (length=1)
|      "Execute_priv" => string "N" (length=1)
|      "Event_priv" => string "N" (length=1)
|      "Trigger_priv" => string "Y" (length=1)
+----------------------------------------------------------------------
*/



文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24911.html

相关文章

  • PHP设计模式-DAO (Data Access Objects) 数据访问对象模式

    整理一下自己的学习Aaron Saray 写的PHP设计模式一些demo和自己的理解。大佬看完如果发现鄙人理解有误请立即指出,感谢拍砖,跪求鞭打 /** * DAO (Data Access Objects) 数据访问对象 * ------------------------------------- * ** 来自说明 ** * * 数据访问对象设计模式描述了如何创建提供透明访问任何...

    stonezhu 评论0 收藏0
  • PHP设计模式-DAO (Data Access Objects) 数据访问对象模式

    整理一下自己的学习Aaron Saray 写的PHP设计模式一些demo和自己的理解。大佬看完如果发现鄙人理解有误请立即指出,感谢拍砖,跪求鞭打 /** * DAO (Data Access Objects) 数据访问对象 * ------------------------------------- * ** 来自说明 ** * * 数据访问对象设计模式描述了如何创建提供透明访问任何...

    z2xy 评论0 收藏0
  • Spring体系常用项目一览

    摘要:的面向的异常遵从通用的异常层次结构。比如以前常用的框架,现在常用的框架包含许多项目,下面挑一些最常用的出来总结一下。状态是流程中事件发生的地点,在流程中通过转移的方式从一个状态到另一个状态,流程的当前状况称为流程数据。 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪...

    OnlyLing 评论0 收藏0
  • Java中的DAO模式

    摘要:此的功能是从应用程序中隐藏在底层存储机制中执行操作所涉及的所有复杂性。这正是模式试图解决的问题。将模式与一起使用开发人员普遍认为的发布将模式的功能降级为零,因为该模式只是实体经理提供的另一层抽象和复杂性。在这种情况下,模式有其自己的位置。 案例概述 数据访问对象(DAO)模式是一种结构模式,它允许我们使用抽象API将应用程序/业务层与持久层(通常是关系数据库,但它可以是任何其他持久性机...

    TIGERB 评论0 收藏0

发表评论

0条评论

shadajin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<