永发信息网

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

答案:3  悬赏:0  手机版
解决时间 2021-02-24 00:42
求教:这段代码对数据库的连接没有主动关闭(调用 db.Close()), 是不是Go的垃圾收集自动关闭释放资源呢? 还是必须手动调用db.Close()释放资源?[mw_shl_code=applescript,true]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) }}[/mw_shl_code]
最佳答案
当然可以不关闭,mysql过会都会自动关了的。但要养成手动关的习惯。
全部回答
Go垃圾回收是内存垃圾回收,分配给对象的内存回收。对于资源,必须手动释放,还给操作系统 再看看别人怎么说的。
不手动关的话,可能在你程序结束的时候,或者这个连接对象出了作用域的时候,golang会帮你自动关闭。。。不过还是支持手动关闭。。。这是好习惯。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
昨晚梦到我奶奶说我儿子只能活到4岁(我奶奶
魅族头戴耳机怎么样,有什么五百块一下的耳机
高青县赵店供电所这个地址在什么地方,我要处
10655106通知我,我的手机无法收到,已转到彩信
当血糖浓度出现暂时性降低时,血糖的快速补充
方正书版内文是横版的,如何使用代码将页码设
要不要辞掉大学老师的工作出国读博
求叶、顾、宋.....等姓氏古风名和现代名
如何下载不用上网的游戏到电脑上玩 打开电脑
在学校里面玩全员加速中可以怎么玩
在种植这方面有没有方便技术指导的软件?
剑灵怎么卖东西给商店
阿德莱德大学 学校宿舍
阿城那家装饰公司好
中国农业银行pos机代缴的电费,手续费何时会
推荐资讯
fifaonline3战术版在哪
下图表示某地水循环示意图,据图完成下面试题
在编制银行报表中流水是1000万,净利润做多少
老黄历中进人口是什么意思
喉咙咽部硬硬的顶到悬雍垂很难受怎么回事,哪
下列对牛角钳描述正确的是A.多用于拔除下颌磨
阳光海岸网络会所我想知道这个在什么地方
下列哪项不是阻塞性肺气肿的诊断依据A.在慢支
mate9充电满了为什么还显示充电
芜湖市诚立包装有限公司我想知道这个在什么地
信用卡有何特点、优点?是具有、 、 、 等
什么是营运资本
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?