ThinkPHP数据库查询之Db类深度解析(1)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: ThinkPHP数据库查询之Db类深度解析

前言

在日常开发过程中模型的使用是非常之多的,但是在开发过程只知道如何使用,并不知道内在是如何实现的,模型是不管接口还是后台都会使用到的东西。


关于视图在前后台分离的大趋势下,框架存在视图大多数还是针对于后台开发的使用。


本文也是对框架解读快到最后阶段了,接下来咔咔将带领大家一起学习关于在框架中Db类的奥秘。


下图为咔咔提供的脑图可以根据这个脑图进行阅读文章。


image.png


一、Db操作类和其它类对应关系解刨

在学习模型之前一定要知道的就是DB这个类,这个类也是对数据库的操作。


在框架中存在这样一个配置文件,在这个配置文件里边会存在关于数据库配置的一系列信息。


在接下来的过程中咔咔也会简单的创建一个数据库来做演示。


image.png


同样在框架的核心层存在俩个类,分别为Db类和Model类,这俩个类就是接下来的解析对象。


image.png


在解析Db操作类和其它类对应关系解刨之前,我们先创建一个数据库作为演示使用。


image.png


首先先来看一下Db类的信息。


image.png


通过上图我们可以看到关于Db类的一部分信息,就是使用Db类的一些查询方法。


但是来到Db类的最后可以看到一个熟悉的方法__callStatic。


image.png


这个方法在一直读咔咔文章的读者应该已经很是熟悉了,这个方法在门面源码解析那一节中进行过深入的了解。


对于这个方法只需要记住的是在调用没有声明的静态方法时会进行调用。


至于call_user_func_array这个函数的使用可以理解为,这个方法是内置函数,可以直接调用函数运行,也就是可以直接运行方法。


image.png


在通过刚刚的查看Db类的注释信息时可以看到Db类是使用着Connection这个类,也就是连接数据库类。


image.png


进入到这个类里边简单的看一下构造函数即可,至于是怎么一个运行顺序会在下文进行讲解。


image.png


在框架中操作控制器有俩大场景,第一中为Db类操作,第二种就是Model操作。


其中Connection·为连接器,Query为查询器,Builder为sql生成器,exception为异常类。


知道了以上的几个信息,在接下来的理解过程中会有一定的帮助,在下一节中将会对Db类库场景分析。



相关文章
|
17天前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
13 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
14天前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
24 2
|
15天前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
77 1
|
16天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
17天前
|
SQL 关系型数据库 数据库
PostgreSQL性能飙升的秘密:这几个调优技巧让你的数据库查询速度翻倍!
【10月更文挑战第25天】本文介绍了几种有效提升 PostgreSQL 数据库查询效率的方法,包括索引优化、查询优化、配置优化和硬件优化。通过合理设计索引、编写高效 SQL 查询、调整配置参数和选择合适硬件,可以显著提高数据库性能。
108 1
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
14 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
66 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0

推荐镜像

更多