gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:25:57 26 4
gpt4 key购买 nike

我正在使用 jmoiron sqlx我的 golang 项目的库。我试图创建一个数据库连接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 来检查有效连接,然后您可以处理错误。

基本上您可以立即看到数据库连接不存在于一种方法中,而不是您自己再次编写该代码。

关于go - sqlx.Connect() 和 sqlx.Open() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52318684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com