博文
-
解放数据库查询, 写一个 go 的查询构造器
针对直接编写 SQL 不灵活, 使用 ORM 语法繁琐语义不明确, 提供一种 orm 和 raw sql 之间的中间方案, 查询构造器 (Query Builder)
-
100 行写一个 go 的协程池 (任务池)
go 的 goroutine 提供了一种较线程而言更廉价的方式处理并发场景, 但 goroutine 太多仍会导致调度性能下降、GC 频繁、内存暴涨, 引发一系列问题。在面临这样的场景时, 限制 goroutine 的数量、重用 goroutine 显然很有价值。
-
搞懂依赖注入, 用 PHP 手写简易 IOC 容器
好的设计会提高程序的可复用性和可维护性,也间接的提高了开发人员的生产力。今天,我们就来说一下在很多框架中都使用的依赖注入。
-
写一个“特殊”的查询构造器 - (八、单元测试、收尾工作)
查询构造器的编写到此结束,这一篇我们说一说 debug、测试相关的问题
-
写一个“特殊”的查询构造器 - (七、DML 语句、事务)
查询语句 (DQL) 的构造功能开发完毕,我们再给查询构造器增加一些对 DML (Data Manipulation Language) 语句的支持,如简单的 insert、update、delete 操作。
-
写一个“特殊”的查询构造器 - (六、关联)
关联查询是关系型数据库典型的查询语句,根据两个或多个表中的列之间的关系,从这些表中查询数据。在 SQL 标准中使用 JOIN 和 ON 关键字来实现。
-
写一个“特殊”的查询构造器 - (五、聚合函数、分组、排序、分页)
where 相关的子句构造完成后,我们继续构造其它子句。这一篇我们进行聚合函数、分组、排序等子句的构造。
-
写一个“特殊”的查询构造器 - (四、条件查询:复杂条件)
在 SQL 的条件查询中,不只有 where、or where 这些基本的子句,还有 where in、where exists、where between 等复杂一些的子句。而且即使是 where 这种基础的子句,也有多个条件的多种逻辑组合。这篇我们就来讲一下查询构造器如何构造这些复杂的查询语句。
-
写一个“特殊”的查询构造器 - (三、条件查询)
如果单单是执行 SELECT * FROM test_table; 这样的语句,使用原生扩展就好了,使用查询构造器就是杀鸡用牛刀。当然,在实际的业务需求中,大部分的 SQL 都没这么简单,有各种条件查询、分组、排序、连表等操作,尤其是条件查询,占到了查询业务的大多数。
-
写一个“特殊”的查询构造器 - (二、第一条语句)
上一篇完成了代码结构的搭建和 PDO 的基础封装,这一篇我们来讲如何构造一个最基本的 SQL 语句并执行得到结果。