Gorm 会自动关闭连接吗?
Does Gorm automatically close the connection?
我一直在为基于 AWS lambda 的应用程序使用 GORM。我对每个处理程序函数都使用了 gorm.Open(),
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
有人可以帮我确认 gorm.Open(...) 是否会自动关闭连接吗?或者我必须使用下面的通用数据库接口?
// Get generic database object sql.DB to use its functions
sqlDB, err := db.DB()
// Ping
sqlDB.Ping()
// Close
sqlDB.Close()
// Returns database statistics
sqlDB.Stats()
gorm.DB
对象旨在重复使用,如 sql.DB
句柄。您很少需要显式关闭这些对象。只需创建一次并重复使用。
gorm.DB
包含一个 sql.DB
,它使用连接池来管理连接。如果关闭,它将停止接受新查询,等待 运行 个查询完成并关闭所有连接。
我一直在为基于 AWS lambda 的应用程序使用 GORM。我对每个处理程序函数都使用了 gorm.Open(),
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
有人可以帮我确认 gorm.Open(...) 是否会自动关闭连接吗?或者我必须使用下面的通用数据库接口?
// Get generic database object sql.DB to use its functions
sqlDB, err := db.DB()
// Ping
sqlDB.Ping()
// Close
sqlDB.Close()
// Returns database statistics
sqlDB.Stats()
gorm.DB
对象旨在重复使用,如 sql.DB
句柄。您很少需要显式关闭这些对象。只需创建一次并重复使用。
gorm.DB
包含一个 sql.DB
,它使用连接池来管理连接。如果关闭,它将停止接受新查询,等待 运行 个查询完成并关闭所有连接。