框架思想,编程思想

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

用不同的对象和类验证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 :一个表对应一个对象

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

  

原文地址:https://www.cnblogs.com/finddata/p/10912034.html