12345678910111213141516171819202122232425262728293031323334353637 |
- package gen
- import (
- "bytes"
- "strings"
- "text/template"
- sqltemplate "zero/tools/goctl/model/sql/template"
- )
- func genInsert(table *InnerTable) (string, error) {
- t, err := template.New("insert").Parse(sqltemplate.Insert)
- if err != nil {
- return "", nil
- }
- insertBuffer := new(bytes.Buffer)
- expressions := make([]string, 0)
- expressionValues := make([]string, 0)
- for _, filed := range table.Fields {
- if filed.SnakeCase == "create_time" || filed.SnakeCase == "update_time" || filed.IsPrimaryKey {
- continue
- }
- expressions = append(expressions, "?")
- expressionValues = append(expressionValues, "data."+filed.UpperCamelCase)
- }
- err = t.Execute(insertBuffer, map[string]interface{}{
- "upperObject": table.UpperCamelCase,
- "lowerObject": table.LowerCamelCase,
- "expression": strings.Join(expressions, ", "),
- "expressionValues": strings.Join(expressionValues, ", "),
- "containsCache": table.ContainsCache,
- })
- if err != nil {
- return "", err
- }
- return insertBuffer.String(), nil
- }
|