首页 > 开发 > MySQL > 正文

golang 连接、操作完mysql, 对mysql的连接会自动关闭,还是必须要手动关闭?

2017-09-08 09:11:42  来源:网友分享

参考 astaxie 的代码

import (    _ "code.google.com/p/go-mysql-driver/mysql"    "database/sql"    "fmt"    //"time")func main() {    db, err := sql.Open("mysql", "astaxie:astaxie@/test?charset=utf8")    checkErr(err)    //插入数据    stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")    checkErr(err)    res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")    checkErr(err)    id, err := res.LastInsertId()    checkErr(err)    fmt.Println(id)    //删除数据    stmt, err = db.Prepare("delete from userinfo where uid=?")    checkErr(err)    res, err = stmt.Exec(id)    checkErr(err)    affect, err = res.RowsAffected()    checkErr(err)    fmt.Println(affect)}func checkErr(err error) {    if err != nil {        panic(err)    }}

求教:这段代码对数据库的连接没有主动关闭(调用 db.Close()), 是不是Go的垃圾收集自动关闭释放资源呢? 还是必须手动调用db.Close()释放资源?

解决方案

数据库的链接必须自己手动关闭的,这个和打开文件一样