事务中的golang sqldatabase预处理语句

事务中的golang sqldatabase预处理语句,第1张

事务中的golang sql / database预处理语句

一个

defer
说法是一个很好的方式,以确保运行的东西不管你怎么退出功能。

在这种特殊情况下,这似乎无关紧要,因为所有错误处理程序都使用

log.Fatal
。如果
log.Fatal
return
语句替换s
并删除延迟,则现在必须在许多地方进行清理:

tx, err := db.Begin()if err != nil {    return nil,err}stmt, err := tx.Prepare("INSERT INTO foo VALUES (?)")if err != nil {    tx.Rollback()    return nil,err}defer for i := 0; i < 10; i++ {    _, err = stmt.Exec(i)    if err != nil {        tx.Rollback()        return nil,err    }}err = tx.Commit()if err != nil {    stmt.Close()    tx.Rollback()    return nil,err}stmt.Close()return somevalue, nil

如果使用延迟,则很难忘记需要清理的地方。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5087079.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存