我正在为我的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?是什么让它与众不同?
谢谢