import mysql的driver初始化

来源:3-6 编码实战:持久化元数据到文件表

拧壶冲

2020-10-23

有提到一个package当被import的时候,文件中的init()会被自动执行。
这节课中使用import _ "github.com/go-sql-driver/mysql" 是不是就是这个目的?
如果不import mysql的package,sql.Open出来就是空的, sql.Drivers里面也是空的。所以我理解在import的时候,执行了init,并且init,将mysql的driver加到当前sql的drivers中,这样我们在Open的时候就可以使用mysql的driver创建一个db的结构。

但是我看了下 github.com/go-sql-driver/mysql 的package,里面没有init的方法定义。这是如何做到初始化的?

写回答

1回答

拧壶冲

提问者

2020-10-23

找到了,在 `github.com/go-sql-driver/mysql/driver.go` 有一个init,然后调用了sql.Regiester("mysql", &MySQLDriver{}) 注册了一个mysqldriver的实例。


1
0

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程