Go中保持连接模式

时间:2017-02-10 13:42:23

标签: go

这是我的代码:

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一起使用的每个函数,但可能有更好的方法吗?

0 个答案:

没有答案