将 databaze 初始化为全局变量是个好主意吗?它可以工作吗?
我在想这样的事情:
func MustDB(d *sql.DB, err error) *sql.DB {
if err != nil {
log.Panic(err)
}
return d
}
// what I don't know - is how to call db.Close()
// username and password can also be read similar way
var db *DB = MustDB(db.Open(...))
func MustPrepare(db *sql.DB, query string) *sql.Stmt {
res, err := sql.Prepare(db, query)
if err!=nil {
log.Panic(err)
}
return ret;
}
优点是,我可以简单地将准备好的 sql 语句创建为全局变量。我不必创建和管理存储,所有 sql 命令都将放在那里。只有我写:
var s1 *sql.Stmt = MustPrepare(db, "SELECT * FROM MyTable")
var s2 *sql.Stmt = MustPrepare(db, "INSERT INTO MyTable(col1, col2) VALUES(?,?)")
var s3 *sql.Stmt = MustPrepare(db, "DELETE FROM MyTable WHERE col1=?")
你认为,这种模式有用,还是根本行不通。
至尊宝的传说
料青山看我应如是
HUX布斯
相关分类