我是靠谱客的博主 飘逸服饰,这篇文章主要介绍使用sqlx要注意的点,现在分享给大家,希望可以做个参考。

1.使用query、queryRows返回的rows,应该使用rows.next(),扫描完每一行或者调用rows.close(),否则该链接永远不会被释放。
The connection used by the Query remains active until either all rows are exhausted by the iteration via Next, or rows.Close() is called, at which point it is released. For more information, see the section on the connection pool.
2.使用事务时不能使用下面这种方式,因为sqlx维护了一个连接池,开启事务、执行语句、提交回滚不一定在同一个连接上。

// this will not work if connection pool > 1
db.MustExec("BEGIN;")
db.MustExec(...)
db.MustExec("COMMIT;")

应该使用下面的方式

tx := db.MustBegin()
tx.MustExec(...)
err = tx.Commit()

一定要提交或者回滚,不然连接不会释放。
3.不能使用占位符修改sql语句的表结构

// doesn't work
db.Query("SELECT * FROM ?", "mytable")
// also doesn't work
db.Query("SELECT ?, ? FROM people", "name", "location")

最后

以上就是飘逸服饰最近收集整理的关于使用sqlx要注意的点的全部内容,更多相关使用sqlx要注意内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(106)

评论列表共有 0 条评论

立即
投稿
返回
顶部