登录
首页 >  Golang >  Go问答

可以对每次调用 sql.Exec 进行计数吗?

来源:stackoverflow

时间:2024-03-08 23:09:24 303浏览 收藏

你在学习Golang相关的知识吗?本文《可以对每次调用 sql.Exec 进行计数吗?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我正在为一个角度应用程序编写一个后端。我想记录每个请求执行了多少数据库查询。

为此,我想在每次调用 sql.Exec 时增加一个整数。如何在不手动将其添加到我使用 sql.Exec 的每个位置的情况下执行此操作?或者有更好的方法吗?


解决方案


如何在不手动将其添加到我使用 sql.exec 的每个位置的情况下执行此操作?

包装您的 sql 访问对象。例如:

type MyDB struct {
    *sql.DB
    count int
}

func (db *MyDB) Exec(query string, args ...interface{}) (sql.Result,error) {
    db.count++
    return db.DB.Exec(query, args...)
}

然后在任何地方使用你的包装类型。这(可能)意味着更新大量代码以使用接口,而不是 *sql.db 变量。

唯一的其他选择是围绕 sql 驱动程序(而不是客户端)编写一个包装器。但你会使用相同的方法。此方法需要对 go 的 sql 内部结构有更多的了解。

一点也不。 go 并没有什么魔力。如果你想把事情做好,你就必须去做。

本篇关于《可以对每次调用 sql.Exec 进行计数吗?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>