From d6c15a2353b8e2f1c5cda2fdb0344b0c621c05a3 Mon Sep 17 00:00:00 2001 From: george Date: Sun, 10 Apr 2022 02:07:25 +0800 Subject: [PATCH] update --- gorm.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gorm.go b/gorm.go index 6a6bb032..81a4768f 100644 --- a/gorm.go +++ b/gorm.go @@ -209,6 +209,27 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) { return } +func (db *DB) Close() error { + sdb, isSdb := db.ConnPool.(*sql.DB) + stmt, isStmt := db.ConnPool.(*PreparedStmtDB) + switch { + case isSdb: + return sdb.Close() + case isStmt: + db.cacheStore.Delete(preparedStmtDBKey) + for _, v := range stmt.Stmts { + v.Close() + } + sdb, err := stmt.GetDBConn() + if err != nil { + return err + } + return sdb.Close() + } + return nil + +} + // Session create new db session func (db *DB) Session(config *Session) *DB { var (