关于golang和数据库连接,客户端以及驱动的疑问?

比如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... ,貌似也是直接用就可以了,不会存在驱动和客户端分开的情况

阅读 3.1k
2 个回答

golang的 database/sql 看包名可以知道是跟关系数据库有关的。只提供一套抽象接口,go-sql-driver是实现了这套接口的驱动,用的时候我们还是直接用database/sql就可以了,这叫面向接口编程

mgo是Mongodb的连接程序,跟database/sql接口没有关系。

mongodb是一家公司生产的一个非关系型数据库产品,mgo本身就扮演者驱动的角色. 而sqlx相当于是符合SQL访问方式的数据库抽象层,作用与java里的jdbc标准类似,具体到每一个数据库产品还需要根据各个产品适配,也就是需要驱动来完成.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题