执行SQL语句
这篇笔记我们介绍如何在GORM中执行原生SQL语句。
执行查询语句
我们可以使用Raw()函数执行SQL查询语句,查询语句中可以使用?占位符用来设置参数,下面是一个例子。
package main
import (
"fmt"
"github.com/gacfox/demoorm/conf"
"github.com/gacfox/demoorm/model"
)
func main() {
conf.InitDb()
var products []model.Product
sql := "select * from t_product where product_id=?"
result := conf.Db.Raw(sql, 1).Find(&products)
fmt.Printf("共%v条记录\n", result.RowsAffected)
for _, product := range products {
fmt.Println(product)
}
}
注意:禁止使用字符串拼接SQL方式进行查询和更新,任何时候我们都应该使用占位符方式设置SQL中的参数,字符串拼接SQL很容易造成SQL注入漏洞。
执行更新语句
执行插入、更新、删除语句我们可以使用Exec()函数实现,下面是一个例子。
package main
import (
"fmt"
"github.com/gacfox/demoorm/conf"
)
func main() {
conf.InitDb()
sql := "update t_product set product_name=? where product_id=?"
result := conf.Db.Exec(sql, "苹果", 1)
fmt.Printf("共%v条记录\n", result.RowsAffected)
}
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。