sqlx.Connect()和sqlx.Open()有什么区别?

时间:2018-09-13 17:14:11

标签: go sqlx

我正在为我的golang项目使用jmoiron sqlx库。我试图创建一个数据库连接的MySQL。因此,我找到了这两个函数:1 ABC 2 ABC sqlx.Connect(),但是没有发现区别。

因此,我尝试阅读godoc中的文档。我发现了:

sqlx.Connect()

sqlx.Open()

sqlx.Open()

Connect to a database and verify with a ping.

我知道Open is the same as sql.Open, but returns an *sqlx.DB instead. 使用golang sqlx.Open()创建了到数据库的连接。但是sql.Open的用途是什么?

如果我在此处看到源代码内部:

sqlx.Connect()

我可以看到它先调用了func Connect(driverName, dataSourceName string) (*DB, error) { db, err := Open(driverName, dataSourceName) if err != nil { return nil, err } err = db.Ping() if err != nil { db.Close() return nil, err } return db, nil } ,然后又调用了sqlx.Open()。因此,唯一的区别是db.Ping()在创建连接后执行ping吗?如果是这样,为什么要ping?是什么让它与众不同?

谢谢

0 个答案:

没有答案