-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsql_builder.go
More file actions
41 lines (33 loc) · 823 Bytes
/
sql_builder.go
File metadata and controls
41 lines (33 loc) · 823 Bytes
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
package dbre
import (
"strings"
)
type SQLQueryBuilder struct {
params []interface{}
builder strings.Builder
}
func NewSQLQueryBuilder() SQLQueryBuilder {
return SQLQueryBuilder{}
}
func (bd *SQLQueryBuilder) AddQuery(sql string) *SQLQueryBuilder {
bd.builder.WriteString(" " + sql + " ")
return bd
}
func (bd *SQLQueryBuilder) AddParam(params ...interface{}) *SQLQueryBuilder {
var length = len(params)
for i := 0; i < length; i++ {
bd.params = append(bd.params, params[i])
}
return bd
}
func (bd *SQLQueryBuilder) AddQueryWithParam(sql string, params ...interface{}) *SQLQueryBuilder {
bd.AddQuery(sql)
bd.AddParam(params...)
return bd
}
func (bd *SQLQueryBuilder) ToSQLQuery() string {
return bd.builder.String()
}
func (bd *SQLQueryBuilder) GetQueryParams() []interface{} {
return bd.params
}