比如go连接mysql,https://github.com/jmoiron/sqlx 是实现了go官方database/sql 的一个客户端,额外还需要驱动:https://github.com/go-sql-dri... ,才能使用。
但是我在连接mongodb的时候,就不是这样,直接使用https://github.com/go-mgo/mgo 就能和mongo server交互了。是因为mgo集成了驱动和客户端两者?
现在又发现mongo官方开源的:https://github.com/mongodb/mo... ,貌似也是直接用就可以了,不会存在驱动和客户端分开的情况
golang的 database/sql 看包名可以知道是跟关系数据库有关的。只提供一套抽象接口,go-sql-driver是实现了这套接口的驱动,用的时候我们还是直接用database/sql就可以了,
这叫面向接口编程
mgo是Mongodb的连接程序,跟database/sql接口没有关系。