-
Notifications
You must be signed in to change notification settings - Fork 0
/
base-generator.go
61 lines (55 loc) · 1.56 KB
/
base-generator.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package sqlgenerator
import (
"fmt"
"strings"
)
type baseGen struct {
}
func (bd *baseGen) QuoteExpr(sql string) string {
return strings.ReplaceAll(sql, "\"", "\\\"")
}
func (bd *baseGen) Insert(sql *SQL) (string, []*SQLParam) {
return fmt.Sprintf("INSERT INTO %s (%s) VALUES (%s)",
sql.TableName,
strings.Join(sql.Columns, ","),
strings.Join(sql.ParamPlaceHolder, ",")), sql.Params
}
func (bd *baseGen) Update(sql *SQL) (string, []*SQLParam, []*SQLParam) {
// quoter := bd.Dialect.Quoter()
if sql.Where != "" {
sqlStr := fmt.Sprintf("UPDATE %s SET %s WHERE %s",
sql.TableName,
strings.Join(sql.Columns, ","),
sql.Where)
return bd.QuoteExpr(sqlStr), sql.Params, sql.WhereParams
}
sqlStr := fmt.Sprintf("UPDATE %s SET %s",
sql.TableName,
strings.Join(sql.Columns, ","))
return bd.QuoteExpr(sqlStr), sql.Params, nil
}
func (bd *baseGen) Delete(sql *SQL) (string, []*SQLParam) {
// quoter := bd.Dialect.Quoter()
if sql.Where != "" {
sqlStr := fmt.Sprintf("DELETE FROM %s WHERE %s",
sql.TableName,
sql.Where)
return bd.QuoteExpr(sqlStr), sql.WhereParams
}
sqlStr := fmt.Sprintf("DELETE FROM %s",
sql.TableName)
return bd.QuoteExpr(sqlStr), sql.Params
}
func (bd *baseGen) Query(sql *SQL) (string, []*SQLParam) {
if sql.Where != "" {
sqlStr := fmt.Sprintf("SELECT %s FROM %s WHERE %s",
strings.Join(sql.Columns, ","),
sql.TableName,
sql.Where)
return bd.QuoteExpr(sqlStr), sql.WhereParams
}
sqlStr := fmt.Sprintf("SELECT %s FROM %s",
strings.Join(sql.Columns, ","),
sql.TableName)
return bd.QuoteExpr(sqlStr), sql.WhereParams
}