知识卡片

数据库驱动的隐式注册机制

专业/工作 · 476.b.1

内容

Go标准库不带任何官方数据库驱动,第三方驱动要接入database/sql,靠的是driver.Driver接口加sql.Register——驱动包在自己的init()函数里调用Register把自己登记到一个全局表里,之后代码只需要`sql.Open(“postgres”发散:这是”面向接口编程+插件式注册”的组合拳,和[[工厂函数按运行时条件返回接口]]一样把具体类型的选。

参考来源

- 位置:《Go Web编程》第6章《存储数据》(源文件:_epub-src/OEBPS/text00019.html) - 结论依据:原文在该章节围绕“Go标准库不带任何官方数据库驱动,第三方驱动要接入`database/sql`,靠的是driver.Drive…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:作,而接下来的小节将会逐一地分析这些操作的实现原理。 代码清单6-6 使用Go对Postgres执行CRUD操作 package main import ( "database/sql" "fmt" _ "github.com/lib/pq" ) type Post struct { Id int Content string Autho…