您好,匿名用户
随意问技术百科期待您的加入

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

0 投票

参考 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()释放资源?

用户头像 提问 2012年 12月1日 @ Lady 上等兵 (162 威望)
分享到:

1个回答

0 投票
 
最佳答案

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

用户头像 回复 2012年 12月1日 @ Capricorn 上等兵 (188 威望)
选中 2012年 12月1日 @Lady
提一个问题:

相关问题

0 投票
1 回复 46 阅读
0 投票
1 回复 38 阅读
0 投票
1 回复 51 阅读
用户头像 提问 2012年 12月1日 @ Pikachu 上等兵 (475 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...