关于golang的sql驱动,下面这两条语句有什么区别?
// store.DB is *sql.DB type
rows, err := store.DB.Query(SQL, args ...)
// err != nil
defer rows.Close()
和
// store.DB is *sql.DB type
stmt, err := store.DB.Prepare(SQL)
// err != nil
defer stmt.Close()
rows, err := stmt.Query(args ...)
// err != nil
defer rows.Close()
好像他们是一样的?有没有细微的差别?
更新:
我们不需要执行许多stmt.Execor stmt.Queryafter db.Prepare,只需在每个 or 之后执行exec一次。当我们使用or时,我们将参数传递给方法,而不是使用原始 SQL 字符串(出于安全考虑)。 querypreparedb.Querydb.Exec
我找到了一个参考链接:http
://go-database-sql.org/prepared.html 似乎两种方式都使用准备好的语句,有什么区别?
幕布斯7119047
慕桂英4014372
相关分类