@@ -76,6 +76,28 @@ func buildTmplMapper(builder *strings.Builder, config Config, tableName string,
7676 builder .WriteString (common .Newline ())
7777 builder .WriteString (common .Newline ())
7878
79+ //insertBatch
80+ builder .WriteString (fmt .Sprintf (`{{define "insertBatch%s"}}` , modelName ))
81+ builder .WriteString (common .Newline ())
82+
83+ builder .WriteString (`{{$size := len . | add -1}}` )
84+ builder .WriteString (common .Newline ())
85+
86+ builder .WriteString (fmt .Sprintf (`INSERT INTO %s(%s)` , tableName , columns ))
87+ builder .WriteString (common .Newline ())
88+
89+ builder .WriteString ("VALUES {{range $i, $v := .}}" )
90+ builder .WriteString (common .Newline ())
91+
92+ builder .WriteString (genTmplRangeValues (modelName , model ))
93+
94+ builder .WriteString (`{{end}}` )
95+ builder .WriteString (common .Newline ())
96+
97+ builder .WriteString (`{{end}}` )
98+ builder .WriteString (common .Newline ())
99+ builder .WriteString (common .Newline ())
100+
79101 //update
80102 builder .WriteString (fmt .Sprintf (`{{define "update%s"}}` , modelName ))
81103 builder .WriteString (common .Newline ())
@@ -170,6 +192,29 @@ func genTmplValues(modelName string, model []common.ModelInfo) string {
170192 return builder .String ()
171193}
172194
195+ func genTmplRangeValues (modelName string , model []common.ModelInfo ) string {
196+ builder := strings.Builder {}
197+
198+ builder .WriteString (`(` )
199+ size := len (model )
200+ for i := range model {
201+ if sqlType2GoMap [model [i ].DataType ] == "string" {
202+ builder .WriteString (fmt .Sprintf ("'{{$v.%s}}'" , common .Column2Modelfield (model [i ].ColumnName )))
203+ } else {
204+ builder .WriteString (fmt .Sprintf ("{{$v.%s}}" , common .Column2Modelfield (model [i ].ColumnName )))
205+ }
206+
207+ size --
208+ if size > 0 {
209+ builder .WriteString (", " )
210+ }
211+ }
212+
213+ builder .WriteString (`){{if lt $i $size}},{{end}}` )
214+ builder .WriteString (common .Newline ())
215+ return builder .String ()
216+ }
217+
173218func getTmplCond (ctype string ) string {
174219 return sqlType2IfCondMap [ctype ]
175220}
0 commit comments