# #go #aws-lambda #go-gorm
Вопрос:
Я использую GORM для своего приложения на основе AWS lambda. Я использовал gorm.Открыть() для каждой функции-обработчика,
db, err := gorm.Open(mysql.Open(dsn), amp;gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
итак, может кто-нибудь помочь мне подтвердить, что это делает gorm.Открыть (…) автоматически закрывает соединение или нет? Или я должен использовать общий интерфейс базы данных, приведенный ниже?
// 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()
Ответ №1:
gorm.DB
Объект предназначен для повторного использования, как sql.DB
дескриптор. Вам редко приходится явно закрывать эти объекты. Просто создайте его один раз и повторно используйте.
gorm.DB
содержит a sql.DB
, который использует пул соединений для управления соединениями. Если он закрыт, он перестанет принимать новые запросы, дождется завершения выполнения запросов и закроет все соединения.