【发布时间】:2020-05-27 13:48:27
【问题描述】:
我正在我的项目中从 database/sql 迁移到 jinzhu/gorm。以前,我使用Stats 方法捕获了我的数据库情况。我想知道如何在 GORM 中实现这一点?我在官方文档中没有找到任何东西。
【问题讨论】:
我正在我的项目中从 database/sql 迁移到 jinzhu/gorm。以前,我使用Stats 方法捕获了我的数据库情况。我想知道如何在 GORM 中实现这一点?我在官方文档中没有找到任何东西。
【问题讨论】:
gorm(通常)是sql.DB 的包装器。
您可以通过调用DB.DB() 访问底层*sql.DB 对象。然后,您可以访问标准库中的任何方法,包括 DB.Stats()。
注意文档中的注释:
DB get
*sql.DBfrom current connection 如果底层数据库 连接不是 *sql.DB,返回 nil
例如:
// db is a *gorm.DB
db, err := gorm.Open("mysql", connectionString)
...
// sqlDB is a *sql.DB
sqlDB := db.DB()
if sqlDB != nil {
// Call to the standard library's sql.DB.Stats
stats := sqlDB.Stats()
}
【讨论】:
来自Gorm Doc
从 *gorm.DB 连接获取通用数据库接口 *sql.DB
//获取通用数据库对象
*sql.DB以使用其功能db.DB()
使用db.DB() 可以得到*sql.DB 并使用函数.Stats() 其中db 是*gorm.DB 连接
sqlDBStats := db.DB().Stats()
【讨论】: