insert.tpl 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. func (m *default{{.upperStartCamelObject}}Model) Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (sql.Result,error) {
  2. {{if .withCache}}{{.keys}}
  3. ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  4. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  5. return conn.ExecCtx(ctx, query, {{.expressionValues}})
  6. }, {{.keyValues}}){{else}}query := fmt.Sprintf("INSERT INTO %s (%s) VALUES ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  7. ret,err:=m.conn.ExecCtx(ctx, query, {{.expressionValues}}){{end}}
  8. return ret,err
  9. }
  10. func (m *default{{.upperStartCamelObject}}Model) InsertWithTx(ctx context.Context, session sqlx.Session, data *{{.upperStartCamelObject}}) (sql.Result,error) {
  11. {{if .withCache}}{{.keys}}
  12. ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  13. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  14. return session.ExecCtx(ctx, query, {{.expressionValues}})
  15. }, {{.keyValues}}){{else}}query := fmt.Sprintf("INSERT INTO %s (%s) VALUES ({{.expression}})", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet)
  16. ret,err:=session.ExecCtx(ctx, query, {{.expressionValues}}){{end}}
  17. return ret,err
  18. }
  19. func (m *default{{.upperStartCamelObject}}Model) BatchInsert(ctx context.Context, dataList []*{{.upperStartCamelObject}}) error {
  20. if len(dataList) == 0 {
  21. return nil
  22. }
  23. {{if .withCache}}keys := make([]string, 0, len(dataList))
  24. {{end}}valueSets := make([]string, 0, len(dataList))
  25. args := make([]interface{}, 0)
  26. for _, data := range dataList {
  27. valueSets = append(valueSets, "({{.expression}})")
  28. args = append(args, {{.expressionValues}})
  29. {{if .withCache}}{{.keys}}
  30. keys = append(keys, {{.keyValues}})
  31. {{end}}
  32. }
  33. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES %s", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet, strings.Join(valueSets, ","))
  34. {{if .withCache}}_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  35. return conn.ExecCtx(ctx, query, args...)
  36. }, keys...){{else}}_, err := m.conn.ExecCtx(ctx, query, args...){{end}}
  37. return err
  38. }
  39. func (m *default{{.upperStartCamelObject}}Model) BatchInsertWithTx(ctx context.Context, session sqlx.Session, dataList []*{{.upperStartCamelObject}}) error {
  40. if len(dataList) == 0 {
  41. return nil
  42. }
  43. {{if .withCache}}keys := make([]string, 0, len(dataList))
  44. {{end}}valueSets := make([]string, 0, len(dataList))
  45. args := make([]interface{}, 0)
  46. for _, data := range dataList {
  47. valueSets = append(valueSets, "({{.expression}})")
  48. args = append(args, {{.expressionValues}})
  49. {{if .withCache}}{{.keys}}
  50. keys = append(keys, {{.keyValues}})
  51. {{end}}
  52. }
  53. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES %s", m.table, {{.lowerStartCamelObject}}RowsExpectAutoSet, strings.Join(valueSets, ","))
  54. {{if .withCache}}_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  55. return session.ExecCtx(ctx, query, args...)
  56. }, keys...){{else}}_, err := session.ExecCtx(ctx, query, args...){{end}}
  57. return err
  58. }
  59. {{if not .withCache}}
  60. func (m *default{{.upperStartCamelObject}}Model) TransactCtx(ctx context.Context, fn func(context.Context, sqlx.Session) error) error {
  61. return m.conn.TransactCtx(ctx, fn)
  62. }
  63. {{end}}