golang

时间:2016-05-24 05:23:35

标签: go

这两种方案可以实现相同的功能,那么它们之间的区别是什么? 参考:       https://golang.org/pkg/database/sql/

1 个答案:

答案 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 不同