insert.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package template
  2. // Insert defines a template for insert code in model
  3. var Insert = `
  4. func (m *default{{.upperStartCamelObject}}Model) Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (sql.Result,error) {
  5. {{if .withCache}}{{if .containsIndexCache}}{{.keys}}
  6. ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  7. query := fmt.Sprintf("insert into %s (%s) values ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  8. return conn.ExecCtx(ctx, query, {{.expressionValues}})
  9. }, {{.keyValues}}){{else}}query := fmt.Sprintf("insert into %s (%s) values ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  10. ret,err:=m.ExecNoCacheCtx(ctx, query, {{.expressionValues}})
  11. {{end}}{{else}}query := fmt.Sprintf("insert into %s (%s) values ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  12. ret,err:=m.conn.ExecCtx(ctx, query, {{.expressionValues}}){{end}}
  13. return ret,err
  14. }
  15. `
  16. // pg
  17. var InsertPg = `
  18. func (m *default{{.upperStartCamelObject}}Model) Insert(data *{{.upperStartCamelObject}}) (int64,error) {
  19. {{if .withCache}}{{if .containsIndexCache}}{{.keys}}
  20. ret, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
  21. query := fmt.Sprintf("insert into %s (%s) values ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  22. return conn.Exec(query, {{.expressionValues}})
  23. }, {{.keyValues}}){{else}}query := fmt.Sprintf("insert into %s (%s) values ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  24. ret,err:=m.ExecNoCache(query, {{.expressionValues}})
  25. {{end}}{{else}}query := fmt.Sprintf("insert into %s (%s) values ({{.expression}}) RETURNING id", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  26. var id int64
  27. err:=m.conn.QueryRow(&id, query, {{.expressionValues}}){{end}}
  28. return id,err
  29. }
  30. `
  31. // InsertMethod defines an interface method template for insert code in model
  32. var InsertMethod = `Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (sql.Result,error)`
  33. // pg
  34. var InsertMethodPg = `Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (int64,error)`