我正在使用jmoiron sqlx库作为我的高丽项目。我试图创建一个db连接mysql。因此,我发现了这两个函数:sqlx.Connect()和sqlx.Open(),但没有发现区别。
因此,我试着阅读戈多中的文档。我发现了这个:
sqlx.Connect()
Connect to a database and verify with a ping.sqlx.Open()
Open is the same as sql.Open, but returns an *sqlx.DB instead.我知道sqlx.Open()使用golang 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()。所以唯一的区别是sqlx.Open()在创建连接之后执行ping?如果是的话,它为什么要这样做呢?是什么让它与众不同?
谢谢
发布于 2018-09-13 17:31:38
Connect将使用open和ping检查有效连接,然后可以处理错误。
基本上,您可以立即看到db连接不在一种方法中,而不是自己编写代码。
https://stackoverflow.com/questions/52318684
复制相似问题