这两种方案可以实现相同的功能,那么它们之间的区别是什么? 参考: https://golang.org/pkg/database/sql/
答案 0 :(得分:3)
<强> DB.Query 强>
func (db *DB) Query(query string, args ...interface{}) (*Rows, error)
Query执行返回行的查询,通常是SELECT。 args用于查询中的任何占位符参数。
根据定义,它接受单个查询并返回行以从
迭代DB.Prepare()+ Stmt.Query()
func (db *DB) Prepare(query string) (*Stmt, error)
准备为以后的查询或执行创建准备好的语句。可以从返回的语句
同时运行多个查询或执行func (s *Stmt) Query(args ...interface{}) (*Rows, error)
Query使用给定的参数执行准备好的查询语句,并将查询结果作为* Rows返回。
由于 DB.prepare 可以接受多个查询而 Stmt.Query 可以同时运行它们,因此可以用于运行多个并发查询与用于执行单个查询的 DB.Query 不同