zoukankan      html  css  js  c++  java
  • Yii2 三层设计模式:SQL Command、Query builder、Active Record(ORM)

    用Yii2也有一段时间了,发现Yii2 Framework对Database的操作有非常良好的结构和弹性。

    接下来介绍三种数据库操作方式。

      SQL Command Level:

    // Get DB componet of Application
    $db = Yii::$app->db;
    
    # Get data form SQL execution
    $ arrData = $db->createCommand('SELECT * FROM table limit 10')
    ->queryAll();
    print_r($arrData);

    Query Builder Level
    $arrData = (new yiidbQuery())
    ->select(['*'])
    ->from('table')
    ->where([])
    ->limit(10)
    ->all(Yii::$app->db);    // 选择数据库
    
    print_r($arrData);

    Active Record (ORM)
    $objData = appmodelsActiveRecordModal::find()
    ->select(['*'])
    ->where([])
    ->limit(10)
    ->all();
    
    print_r($objData);


    那么这三种对区别是什么呢?

    1. SQL Command 本身(yiidbcommand) 作为Query builder、Active Record对底层,所以需要在createCommand() 之后使用。

    2. Active Record(ORM) 一个Object会带有多个成员变量和成员函数导致性能上的损耗。

    3. Active Record使用asArray() 可以略过ORM的一些细节上处理,将返回值由对象转为数组,达到Builder Level效能。
  • 相关阅读:
    latex插入图片
    装virtualenv和flask
    GitHub Pages写博客
    用模拟退火算法进行特征选择
    用遗传算法进行特征选择
    智能垃圾桶
    蚁群算法 与 A*算法 寻找最优路径 对比 (pygame)
    pygame
    pyinstaller打包python应用程序
    内网渗透之信息收集-linux
  • 原文地址:https://www.cnblogs.com/wilburxu/p/7989722.html
Copyright © 2011-2022 走看看