• 框架思想,编程思想


    编程重要思想 :用不同的对象和类完成任务

    用不同的对象和类验证id

    用不同的对象和类抛出异常

    用不同的对象和类连接数据库操作数据库

    Think操作数据库的三种方式:

      (1)原生sql   :

              $rs = Db::query('select * from zerg_goods where id=?',[$id]);

      (2)查询构建器

              $result = Db::table('zerg_goods')->where('id','=',$id);  //此时的$result是一个对象如下图

            

              

             得到最终的结果还要用find()或者select()才会最终生成sql语句:

                         

              Db::table('zerg_goods')->where('id','=',$id)->find()
              Db::table('zerg_goods')->where('id','=',$id)->select()
             
             $rs=Db::table('zerg_goods')->where('id','=',$id)->select()
    真正的数据库的执行方法
             find()
             select()
             uopdate()
             insert()
             delete()   

     

    where条件的三种写法    

    where (表达式)

    where (数组):安全性不好

    where (闭包):里边就是构建一个查询连接对象,不能用->select()

        

      (3)ORM模型

                                                          think操作数据库框架图

    Db,Collection,Query,Bulid四个对象的作用

    Db:

      数据库操作的一个入口对象。

      作用:

        (1)就是说增删改查都是通过操作Db对象来完成:Db::query

        (2)肩负着连接数据库。在Db内部通过实例化Collection对象来连接数据库

    Collection数据库连接器:连接数据库对象

        (惰性):它并不是连接了数据 库而是出于待命状态,当你执行sql语句时才真正的去连接数据库。

        如果是用原生的sql那么并不需要Query和builder

    Query查询器:被封装的查询器对象

    Builder对象:把Query查询器的sql编译成原生的sql

    Drives驱动:

      就是提供几种不同的数据库连接类型,每种类负责不同的数据库的连接

     

    模型

     ORM:

    对象关系映射,就是用面向对象的思维:ORM就是把数据表思考为一个对象

    当我们用ORM操作数据库的时候并不是操作表,我们操作的是一个对象,具体是怎么操作数据库细节不用关心

    表与表的关系就变成对象与对象的作用关系

    th5中的模型

    就是实现ORM的一个具体机制

    th5的模型:不仅仅是做数据库的查询还可以包含相关的业务逻辑 可以把模型理为对象。延伸:模型就是业务的集合,也可以是多个对象的集合,多个对象组合在一起也可以看成一个模型 

    模型和表和对象之间没有必然的联系,不是一一对应关系,他是按照业务(功能区)划分的,所以不要把模型看做是数据库的查询,更关心的是业务逻辑,所以不要把模型和数据库11对应

    总结

    ORM :一个表对应一个对象

    模型:一个模型对应多个表或者对应多个对象

      

  • 相关阅读:
    Linux修改root密码报错
    Python中的排序---冒泡法
    Python随机数
    Python中的深拷贝和浅拷贝
    Couldn’t download https://raw.githubusercontent.com/certbot/certbot/ 问题解决
    Python内置数据结构----list
    Python内置数据结构
    Vue指令
    computed 和 watch
    Vue的数据响应式
  • 原文地址:https://www.cnblogs.com/finddata/p/10912034.html
Copyright © 2020-2023  润新知