0.目标
使用golang "text/template"库实现插入sql模板
1.实现示例
//结构体
type Person struct {
Name string
Age int32
}
//模板语句
var InsertPersonInfoSql = `
insert into {{.Table}}
(name, age, create_time)
values
{{ range $i, $e := .PersonList}}
{{if eq $i 0}}
('{{$e.Name}}', '{{$e.Age}}', now())
{{else}}
,('{{$e.Name}}', '{{$e.Age}}', now())
{{end}}
{{end}}
//插入
func SavePersonInfo(personList []*Person ) (err error) {
buf := new(bytes.Buffer)
tmpl, _ := template.New("insert_person").Parse(InsertPersonInfoSql)
tmpl.Execute(buf, &struct {
Table string
PersonList []*Person
}{"bad_man", personList })
fmt.Println("insert pic sql:", buf.String())
_, err = mysql.DB.Exec(buf.String())
if err != nil {
fmt.Println("exec sql fail,", err)
}
return
}