ThinkPHP中数据库操作方法及分类

ThinkPHP中数据库操作方法及分类
ThinkPHP

每一个web框架中,数据库的的操作都是重中之重的,今天俺将向大家阐述ThinkPHP中的数据库操作方法及分类。

之前的《ThinkPHP核心技术点简介》文章中,解释了ThinkPHP核心技术点,如果还未了解的,可以先去了解一下。

数据库分类

ThinkPHP支持四种数据库

  • MySQL
  • PgSQL
  • SqLite
  • SqServer

数据库操作方法

ThinkPHP支持三种数据库操作方法,其中ORM是需要重点学习的。

  • 原生SQL
  • 构造器来操作数据库
  • 模型、关联模型来操作数据库 ORM

原生SQL

Db::query("select * from banner_item  where banner_id=?",[$id]);

为什么不推荐使用原生SQL?

没有使用查询构造器来方便,最主要原因是解决了数据库开发中的差异性

构造器

查询构造器简单使用案例

Db::table("banner_item")->where("banner_id","=",$id)->select()

查询构造器解析,Db隐藏数据库相应的具体操作的细节,Db之后的方法调用分为两大部分。

  • table、where 链式方法,辅助方法,不会真正的执行sql语句
  • select、find、update、delete、insert  查询方法,真正数据库执行方法

ORM与模型

ORM-> Object Relation Mapping 用中文来翻译简称就是对象关系映射 。

Db通常不能很好的处理我们的业务逻辑。

Model下还是Db类在驱动,只不过ThinkPHP将模型概念单独提出来了,并且帮我们封装好了。

Db属于数据库访问层,但是Model建立于访问层之上的处理业务逻辑的模型层。

  • 模型还可以包含业务逻辑,包含业务的集合。
  • 处理比较复杂的业务逻辑。
  • ORM将表看做一个对象来看待,但是模型可以对应多个对象,多个表。
  • 模型和表之间没有联系,因为划分不是用表来划分,模型是你自己的业务逻辑功能来划分的。

业务逻辑过于简单的时候,一个模型可能对应一个表,如果业务很复杂,那么模型和表可能就不是一一对应的了。

ThinkPHP可以将模型划分为三层 :

  • model
  • service
  • logic

数据库中间层架构

TP5数据库里面连接是惰性的,节约服务器资源。

Query是对数据库常用的CURD的封装。

Query通过Builder生成原生SQL SQL=>Connection=>执行

封装性隐藏细节和差异,让客户端开发起来更加方便。

同一个标准Query查询器,用不同的Builder生成器来解析Query查询器,从而来适配不同的数据库。

(0)
上一篇 2020年4月19日 下午11:29
下一篇 2020年4月26日 下午7:35

相关推荐

发表评论

登录后才能评论