设计模式之:数据对象关系模式

是将类的对象属性和数据存储映射起来,一个对象的操作会映射为对数据存储的操作,如new一个对象,对应的数据就会映射到这个对象上,对对象属性修改后,就会保存到数据库中。


接下来我们实现一个简单的ORM的demo:

class User{

    public $id;
    public $age;
    public $name;

    protected $db;
    public function __construct($id)
    {
        $this->db = new \IMooc\Database\MySQLi();
        $this->db->connect('localhost','root','root','test');
        $res = $this->db->query("select * from user where id = {$id}");
        $data = $res->fetch_assoc();
        $this->id = $data['id'];
        $this->age = $data['age'];
        $this->name = $data['name'];
    }

    function __destruct()
    {
        $res = "update user set name = '{$this->name}' ,age = {$this->age} where id = {$this->id}";
        $res = $this->db->query($res);
    }

}

声明一个User类,然后有三个属性。我们在他的构造函数中传递$id(数据库的主键Id),然后查询指定的数据库数据,再赋值给类的属性,析构函数我们将类现在的属性更新到数据表中。

$user =new User(1)
$user->age = 112;
$user->name='hank';

当我们new这个类并且传递Id的时候,该对象就映射了指定的数据。我们修改指定的属性值,请求结束类自动销毁的时候,构析函数自动运行,将现在的参数更新到指定的字段。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,145评论 6 13
  • 朝阳爬上屋顶,摊着长长的身子,一半躺在瓦棱上,一半挂在屋檐下。房子的前坪阴一段,阳光洒满一段。 屋外是安静的,屋内...
    紫芋湾阅读 914评论 6 17
  • 目标:不停追求(卓)、不断翱翔(菲) 早上练普通话。看简笔画。 中午买菜的时候忘拿伞了,骑着自行车在雨中飞奔 的感...
    逆风追梦人阅读 210评论 0 0
  • 1、我建造了一艘宇宙飞船,准备开往宇宙,没想到因为没有拍到拍照而不得不推迟。 2、未来机器人可以扮演很多角色,比如...
    1e81dcf20286阅读 442评论 0 0