我们是否也应该在 Golang 中关闭 DB 的 .Prepare() ?

Kok*_*zzu 4 sql prepared-statement go

教程中可以看出,rows.Closed()必须调用 where rowsis from stmt.Query()stmt.Closed()也应该调用 where stmtis from db.Prepare()?

// inside a function
stmt, err := db.Prepare(cmd) // cmd is SQL string
Check(err)
// should we add: defer stmt.Close()
rows, err := stmt.Query(params) // params is map/interface{}
defer rows.Close()
Check(err)
Run Code Online (Sandbox Code Playgroud)

jos*_*hua 6

简短的回答是肯定的。你应该调用 stmt.Close();

长答案可以在这个谷歌小组帖子中找到。