最近学习到go语言使用go-sql-driver/mysql驱动时,遇到一些问题,这里总结和分析下,看对gopher们有木有用。
首先,网上找的文章,大都是雷同的怎么怎么使用,但比较少涉及到具体的调用流程,我也是初学者,理解不一定透彻,如有问题,读者朋友们请不吝赐教。
网上的文章包括官方都是说先导入包:
import (
"database/sql"
_"github.com/go-sql-driver/mysql"
)
然后就开始各种api如何调用的例子了,但为何import包时,"github.com/go-sql-driver/mysql"加下划线空指示符呢?假如不加下划线,编译时会报imported and not used: "github.com/go-sql-driver/mysql"错误,那么不导入行不行?显然也不行,这样的导入方式的意义何在?这个驱动是如何被调用的呢?可能很多人没有注意或者现在发现这个问题也有点蒙圈了,别急,先让我们温习下:
1.go语言本身没有没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动。而go-sql-driver/mysql是比较流行的一个,它实现了go定义的标准接口。所以我们使用标准接口,实际调用的是go-sql-driver/mysql驱动的实现。
2.我们知道,go语言的每个包都有一个或多个init函数,且该函数没有参数和返回值,也不能显示的调用,它


262

被折叠的 条评论
为什么被折叠?



