鍍金池/ 問答/GO  數(shù)據(jù)庫/ 關于golang和數(shù)據(jù)庫連接,客戶端以及驅動的疑問?

關于golang和數(shù)據(jù)庫連接,客戶端以及驅動的疑問?

比如go連接mysql,https://github.com/jmoiron/sqlx 是實現(xiàn)了go官方database/sql 的一個客戶端,額外還需要驅動:https://github.com/go-sql-dri... ,才能使用。

但是我在連接mongodb的時候,就不是這樣,直接使用https://github.com/go-mgo/mgo 就能和mongo server交互了。是因為mgo集成了驅動和客戶端兩者?

現(xiàn)在又發(fā)現(xiàn)mongo官方開源的:https://github.com/mongodb/mo... ,貌似也是直接用就可以了,不會存在驅動和客戶端分開的情況

回答
編輯回答
囍槑

golang的 database/sql 看包名可以知道是跟關系數(shù)據(jù)庫有關的。只提供一套抽象接口,go-sql-driver是實現(xiàn)了這套接口的驅動,用的時候我們還是直接用database/sql就可以了,這叫面向接口編程

mgo是Mongodb的連接程序,跟database/sql接口沒有關系。

2017年9月12日 18:16
編輯回答
乖乖噠

mongodb是一家公司生產(chǎn)的一個非關系型數(shù)據(jù)庫產(chǎn)品,mgo本身就扮演者驅動的角色. 而sqlx相當于是符合SQL訪問方式的數(shù)據(jù)庫抽象層,作用與java里的jdbc標準類似,具體到每一個數(shù)據(jù)庫產(chǎn)品還需要根據(jù)各個產(chǎn)品適配,也就是需要驅動來完成.

2017年9月14日 22:25