go 通过gorm新建的数据库连接, 何时close呢

代码里面定义一个全局变量*gorm.DB, init初始化一下, 然后就可以正常使用了

但是 数据库连接在哪里close呢, 或者需要close吗?

阅读 29.6k
3 个回答

创建gorm.DB对象的时候连接并没有被创建,在具体使用的时候才会创建。gorm内部,准确的说是database/sql内部会维护一个连接池,可以通过参数设置最大空闲连接数,连接最大空闲时间等。使用者不需要管连接的创建和关闭。

直接看官方示例:

import (
  "github.com/jinzhu/gorm"
  _ "github.com/jinzhu/gorm/dialects/mysql"
)

func main() {
  db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local")
  defer db.Close()
}

http://gorm.io/zh_CN/docs/con...

全局变量*gorm.DB,只是一个对数据库连接前的初始化加载,你不需要关心数据库连接关闭的问题。 但是你需要关注数据库连接数的健康状况 ~Gorm rows未关闭的坑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题