这是我的代码:
package db_layer
import (
"github.com/jmoiron/sqlx"
"log"
"../stackoverflow"
)
var db *sqlx.DB
func Insert_so_Questions(questions []stackoverflow.SOQuestion) {
var err error
db, err = sqlx.Open("postgres", "user=demas password=root host=192.168.1.71 port=5432 dbname=news sslmode=disable")
if err != nil {
log.Fatal(err)
}
defer db.Close()
tx := db.MustBegin()
for _, q := range questions {
tx.MustExec("INSERT INTO stackquestions(title, link) VALUES($1, $2)", q.Title, q.Link)
}
tx.Commit()
}
每次我从其他模块调用该函数时,我打开连接。在函数调用之间保持连接打开的好方法是什么?
我认为将连接传递给与DB一起使用的每个函数,但可能有更好的方法吗?