为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
繁花如伊 2023-04-04 14:41:37
我正在为我的 golang 项目使用jmoiron sqlx库。我试图创建一个数据库连接mysql。所以,我找到了这两个函数:sqlx.Connect()和sqlx.Open(),但没有发现区别。因此,我尝试阅读godoc中的文档。我找到了这个:sqlx.连接()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?是什么让它与众不同?谢谢
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

Connect 将使用 open 和 ping 来检查有效连接,然后您可以处理错误。

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


查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信