sqlx.Connect() 和 sqlx.Open() 有什么区别?
What is the difference between sqlx.Connect() and sqlx.Open()?
我正在为我的 golang 项目使用 jmoiron sqlx 库。我试图创建一个数据库连接 mysql。所以,我找到了这两个函数:sqlx.Connect()
和sqlx.Open()
,但没有发现区别。
因此,我尝试阅读 godoc 中的文档。我发现了这个:
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?如果是这样,为什么它会ping?有什么不同?
谢谢
Connect 将使用 open 和 ping 来检查有效连接,然后您可以处理错误。
基本上您可以立即看到数据库连接不存在于一种方法中,而不是您自己再次编写该代码。
我正在为我的 golang 项目使用 jmoiron sqlx 库。我试图创建一个数据库连接 mysql。所以,我找到了这两个函数:sqlx.Connect()
和sqlx.Open()
,但没有发现区别。
因此,我尝试阅读 godoc 中的文档。我发现了这个:
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?如果是这样,为什么它会ping?有什么不同?
谢谢
Connect 将使用 open 和 ping 来检查有效连接,然后您可以处理错误。
基本上您可以立即看到数据库连接不存在于一种方法中,而不是您自己再次编写该代码。