Go 有没有一种方法可以计算对sql.Exec的每次调用?

Go 有没有一种方法可以计算对sql.Exec的每次调用?,go,Go,我正在为一个角度应用程序编写一个后端。我想记录每个请求执行了多少数据库查询 为此,我想在每次调用sql.Exec时增加一个整数。如何在不将其手动添加到使用sql.Exec的每个位置的情况下执行此操作?还是有更好的方法 如何在不将其手动添加到使用sql.Exec的每个位置的情况下执行此操作 一点也不。围棋没有魔力。如果你想把事情做完,你必须去做 如何在不将其手动添加到使用sql.Exec的每个位置的情况下执行此操作 包装SQL访问对象。例如: type MyDB struct { *sql

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

为此,我想在每次调用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
内部结构。

您可以将
sql.Exec
封装在一个方法中,并在该方法中执行所有增量。如果这是真的,那么我很高兴我从未使用Ruby。魔法是邪恶的。