Skip to content
This repository was archived by the owner on May 30, 2025. It is now read-only.

Commit ca35b5b

Browse files
committed
feat(sqlbuilderzero): fix session and cache
feat(sqlbuilderzero): fix session and cache
1 parent ea25651 commit ca35b5b

13 files changed

+142
-62
lines changed
Lines changed: 62 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,61 @@
1-
func (m *custom{{.upperStartCamelObject}}Model) BulkInsert(ctx context.Context, datas []*{{.upperStartCamelObject}}) error {
1+
func (m *custom{{.upperStartCamelObject}}Model) BulkInsert(ctx context.Context, session sqlx.Session, datas []*{{.upperStartCamelObject}}) error {
22
sb := sqlbuilder.InsertInto(m.table)
33
sb.Cols({{.lowerStartCamelObject}}RowsExpectAutoSet)
44
for _, data := range datas {
55
sb.Values({{.expressionValues}})
66
}
7-
sql, args := sb.Build()
8-
_, err:= m.conn.ExecCtx(ctx, sql, args...)
7+
statement, args := sb.Build()
8+
9+
var err error
10+
if session != nil {
11+
_, err = session.ExecCtx(ctx, statement, args...)
12+
} else {
13+
{{if .withCache}}_, err = m.ExecNoCacheCtx(ctx, statement, args...){{else}}_, err = m.conn.ExecCtx(ctx, statement, args...){{end}}
14+
}
915
return err
1016
}
1117

12-
func (m *custom{{.upperStartCamelObject}}Model) FindByCondition(ctx context.Context, conds ...condition.Condition) ([]*{{.upperStartCamelObject}}, error) {
13-
sb := sqlbuilder.Select({{.lowerStartCamelObject}}FieldNames...).From(m.table)
18+
func (m *custom{{.upperStartCamelObject}}Model) FindByCondition(ctx context.Context, session sqlx.Session, conds ...condition.Condition) ([]*{{.upperStartCamelObject}}, error) {
19+
sb := sqlbuilder.Select({{.lowerStartCamelObject}}FieldNames...).From(m.table)
1420
condition.ApplySelect(sb, conds...)
15-
sql, args := sb.Build()
21+
statement, args := sb.Build()
1622

1723
var resp []*{{.upperStartCamelObject}}
18-
err := m.conn.QueryRowsCtx(ctx, &resp, sql, args...)
24+
var err error
25+
26+
if session != nil {
27+
err = session.QueryRowsCtx(ctx, &resp, statement, args...)
28+
} else {
29+
{{if .withCache}}err = m.QueryRowsNoCacheCtx(ctx, &resp, statement, args...){{else}}err = m.conn.QueryRowsCtx(ctx, &resp, statement, args...){{end}}
30+
}
1931
if err != nil {
2032
return nil, err
2133
}
2234
return resp, nil
2335
}
2436

25-
func (m *custom{{.upperStartCamelObject}}Model) FindOneByCondition(ctx context.Context, conds ...condition.Condition) (*{{.upperStartCamelObject}}, error) {
37+
func (m *custom{{.upperStartCamelObject}}Model) FindOneByCondition(ctx context.Context, session sqlx.Session, conds ...condition.Condition) (*{{.upperStartCamelObject}}, error) {
2638
sb := sqlbuilder.Select({{.lowerStartCamelObject}}FieldNames...).From(m.table)
39+
2740
condition.ApplySelect(sb, conds...)
2841
sb.Limit(1)
29-
sql, args := sb.Build()
42+
statement, args := sb.Build()
3043

3144
var resp {{.upperStartCamelObject}}
32-
err := m.conn.QueryRowCtx(ctx, &resp, sql, args...)
45+
var err error
46+
47+
if session != nil {
48+
err = session.QueryRowCtx(ctx, &resp, statement, args...)
49+
} else {
50+
{{if .withCache}}err = m.QueryRowNoCacheCtx(ctx, &resp, statement, args...){{else}}err = m.conn.QueryRowCtx(ctx, &resp, statement, args...){{end}}
51+
}
3352
if err != nil {
3453
return nil, err
3554
}
3655
return &resp, nil
3756
}
3857

39-
func (m *custom{{.upperStartCamelObject}}Model) PageByCondition(ctx context.Context, conds ...condition.Condition) ([]*{{.upperStartCamelObject}}, int64 ,error) {
58+
func (m *custom{{.upperStartCamelObject}}Model) PageByCondition(ctx context.Context, session sqlx.Session, conds ...condition.Condition) ([]*{{.upperStartCamelObject}}, int64 ,error) {
4059
sb := sqlbuilder.Select({{.lowerStartCamelObject}}FieldNames...).From(m.table)
4160
countsb := sqlbuilder.Select("count(*)").From(m.table)
4261

@@ -51,24 +70,34 @@ func (m *custom{{.upperStartCamelObject}}Model) PageByCondition(ctx context.Cont
5170
condition.ApplySelect(countsb, countConds...)
5271

5372
var resp []*{{.upperStartCamelObject}}
73+
var err error
5474

55-
sql, args := sb.Build()
56-
err := m.conn.QueryRowsCtx(ctx, &resp, sql, args...)
75+
statement, args := sb.Build()
76+
77+
if session != nil {
78+
err = session.QueryRowsCtx(ctx, &resp, statement, args...)
79+
} else {
80+
{{if .withCache}}err = m.QueryRowsNoCacheCtx(ctx, &resp, statement, args...){{else}}err = m.conn.QueryRowsCtx(ctx, &resp, statement, args...){{end}}
81+
}
5782
if err != nil {
5883
return nil, 0, err
5984
}
6085

6186
var total int64
62-
sql, args = countsb.Build()
63-
err = m.conn.QueryRowCtx(ctx, &total, sql, args...)
87+
statement, args = countsb.Build()
88+
if session != nil {
89+
err = session.QueryRowCtx(ctx, &total, statement, args...)
90+
} else {
91+
{{if .withCache}}err = m.QueryRowNoCacheCtx(ctx, &total, statement, args...){{else}}err = m.conn.QueryRowCtx(ctx, &total, statement, args...){{end}}
92+
}
6493
if err != nil {
6594
return nil, 0, err
6695
}
6796

6897
return resp, total, nil
6998
}
7099

71-
func (m *custom{{.upperStartCamelObject}}Model) UpdateFieldsByCondition(ctx context.Context, field map[string]any, conds ...condition.Condition) error {
100+
func (m *custom{{.upperStartCamelObject}}Model) UpdateFieldsByCondition(ctx context.Context, session sqlx.Session, field map[string]any, conds ...condition.Condition) error {
72101
if field == nil {
73102
return nil
74103
}
@@ -82,21 +111,33 @@ func (m *custom{{.upperStartCamelObject}}Model) UpdateFieldsByCondition(ctx cont
82111
}
83112
sb.Set(assigns...)
84113

85-
sql, args := sb.Build()
86-
_, err := m.conn.ExecCtx(ctx, sql, args...)
114+
statement, args := sb.Build()
115+
116+
var err error
117+
if session != nil {
118+
_, err = session.ExecCtx(ctx, statement, args...)
119+
} else {
120+
{{if .withCache}}_, err = m.ExecNoCacheCtx(ctx, statement, args...){{else}}_, err = m.conn.ExecCtx(ctx, statement, args...){{end}}
121+
}
87122
if err != nil {
88123
return err
89124
}
90125
return nil
91126
}
92127

93-
func (m *custom{{.upperStartCamelObject}}Model) DeleteByCondition(ctx context.Context, conds ...condition.Condition) error {
128+
func (m *custom{{.upperStartCamelObject}}Model) DeleteByCondition(ctx context.Context, session sqlx.Session, conds ...condition.Condition) error {
94129
if len(conds) == 0 {
95130
return nil
96131
}
97132
sb := sqlbuilder.DeleteFrom(m.table)
98133
condition.ApplyDelete(sb, conds...)
99-
sql, args := sb.Build()
100-
_, err := m.conn.ExecCtx(ctx, sql, args...)
134+
statement, args := sb.Build()
135+
136+
var err error
137+
if session != nil {
138+
_, err = session.ExecCtx(ctx, statement, args...)
139+
} else {
140+
{{if .withCache}}_, err = m.ExecNoCacheCtx(ctx, statement, args...){{else}}_, err = m.conn.ExecCtx(ctx, statement, args...){{end}}
141+
}
101142
return err
102143
}

.template/go-zero/model/delete.tpl

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
func (m *default{{.upperStartCamelObject}}Model) Delete(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error {
1+
func (m *default{{.upperStartCamelObject}}Model) Delete(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error {
22
{{if .withCache}}{{if .containsIndexCache}}data, err:=m.FindOne(ctx, {{.lowerStartCamelPrimaryKey}})
33
if err!=nil{
44
return err
@@ -9,10 +9,19 @@ func (m *default{{.upperStartCamelObject}}Model) Delete(ctx context.Context, {{.
99
sb := sqlbuilder.DeleteFrom(m.table)
1010
sb.Where(sb.EQ("{{.originalPrimaryKey}}", {{.lowerStartCamelPrimaryKey}}))
1111
sql, args := sb.Build()
12+
if session != nil {
13+
return session.ExecCtx(ctx, sql, args...)
14+
}
1215
return conn.ExecCtx(ctx, sql, args...)
1316
}, {{.keyValues}}){{else}}sb := sqlbuilder.DeleteFrom(m.table)
1417
sb.Where(sb.EQ("{{.originalPrimaryKey}}", {{.lowerStartCamelPrimaryKey}}))
1518
sql, args := sb.Build()
16-
_,err:=m.conn.ExecCtx(ctx, sql, args...){{end}}
19+
var err error
20+
if session != nil {
21+
_, err = session.ExecCtx(ctx, sql, args...)
22+
}else{
23+
_, err = m.conn.ExecCtx(ctx, sql, args...)
24+
}
25+
{{end}}
1726
return err
1827
}

.template/go-zero/model/find-one-by-field.tpl

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
func (m *default{{.upperStartCamelObject}}Model) FindOneBy{{.upperField}}(ctx context.Context, {{.in}}) (*{{.upperStartCamelObject}}, error) {
1+
func (m *default{{.upperStartCamelObject}}Model) FindOneBy{{.upperField}}(ctx context.Context, session sqlx.Session, {{.in}}) (*{{.upperStartCamelObject}}, error) {
22
{{if .withCache}}{{.cacheKey}}
33
var resp {{.upperStartCamelObject}}
44
err := m.QueryRowIndexCtx(ctx, &resp, {{.cacheKeyVariable}}, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) {
55
sb := sqlbuilder.Select({{.lowerStartCamelObject}}Rows).From(m.table)
6-
// patch
76
sb.Where(sb.EQ(strings.Split(strings.ReplaceAll("{{.originalField}}", " ", ""), "=")[0], {{.lowerStartCamelField}}))
87
sb.Limit(1)
98
sql, args := sb.Build()
10-
if err := conn.QueryRowCtx(ctx, &resp, sql, args...); err != nil {
9+
var err error
10+
11+
if session != nil {
12+
err = session.QueryRowCtx(ctx, &resp, sql, args...)
13+
} else {
14+
err = conn.QueryRowCtx(ctx, &resp, sql, args...)
15+
}
16+
if err != nil {
1117
return nil, err
1218
}
1319
return resp.{{.upperStartCamelPrimaryKey}}, nil
@@ -21,13 +27,19 @@ func (m *default{{.upperStartCamelObject}}Model) FindOneBy{{.upperField}}(ctx co
2127
return nil, err
2228
}
2329
}{{else}}var resp {{.upperStartCamelObject}}
30+
var err error
31+
2432
sb := sqlbuilder.Select({{.lowerStartCamelObject}}Rows).From(m.table)
25-
// patch
2633
sb.Where(sb.EQ(strings.Split(strings.ReplaceAll("{{.originalField}}", " ", ""), "=")[0], {{.lowerStartCamelField}}))
2734
sb.Limit(1)
2835

2936
sql, args := sb.Build()
30-
err := m.conn.QueryRowCtx(ctx, &resp, sql, args...)
37+
38+
if session != nil {
39+
err = session.QueryRowCtx(ctx, &resp, sql, args...)
40+
} else {
41+
err = m.conn.QueryRowCtx(ctx, &resp, sql, args...)
42+
}
3143

3244
switch err {
3345
case nil:

.template/go-zero/model/find-one.tpl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
func (m *default{{.upperStartCamelObject}}Model) FindOne(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) {
1+
func (m *default{{.upperStartCamelObject}}Model) FindOne(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) {
22
{{if .withCache}}{{.cacheKey}}
33
var resp {{.upperStartCamelObject}}
44
err := m.QueryRowCtx(ctx, &resp, {{.cacheKeyVariable}}, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
55
sb := sqlbuilder.Select({{.lowerStartCamelObject}}Rows).From(m.table)
66
sb.Where(sb.EQ("{{.originalPrimaryKey}}", {{.lowerStartCamelPrimaryKey}}))
77
sql, args := sb.Build()
8+
if session != nil {
9+
return session.QueryRowCtx(ctx, v, sql, args...)
10+
}
811
return conn.QueryRowCtx(ctx, v, sql, args...)
912
})
1013
switch err {
@@ -19,7 +22,12 @@ func (m *default{{.upperStartCamelObject}}Model) FindOne(ctx context.Context, {{
1922
sb.Limit(1)
2023
sql, args := sb.Build()
2124
var resp {{.upperStartCamelObject}}
22-
err := m.conn.QueryRowCtx(ctx, &resp, sql, args...)
25+
var err error
26+
if session != nil {
27+
err = session.QueryRowCtx(ctx, &resp, sql, args...)
28+
} else {
29+
err = m.conn.QueryRowCtx(ctx, &resp, sql, args...)
30+
}
2331
switch err {
2432
case nil:
2533
return &resp, nil

.template/go-zero/model/import.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import (
22
"context"
33
"database/sql"
4+
"fmt"
45
"strings"
56
{{if .time}}"time"{{end}}
67

.template/go-zero/model/insert.tpl

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
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-
sql, args := sqlbuilder.NewInsertBuilder().
1+
func (m *default{{.upperStartCamelObject}}Model) Insert(ctx context.Context, session sqlx.Session, data *{{.upperStartCamelObject}}) (sql.Result,error) {
2+
statement, args := sqlbuilder.NewInsertBuilder().
53
InsertInto(m.table).
64
Cols({{.lowerStartCamelObject}}RowsExpectAutoSet).
75
Values({{.expressionValues}}).Build()
8-
return conn.ExecCtx(ctx, sql, args...)
9-
}, {{.keyValues}}){{else}}sql, args := sqlbuilder.NewInsertBuilder().
10-
InsertInto(m.table).
11-
Cols({{.lowerStartCamelObject}}RowsExpectAutoSet).
12-
Values({{.expressionValues}}).Build()
13-
ret,err:=m.conn.ExecCtx(ctx, sql, args...){{end}}
14-
return ret,err
6+
{{if .withCache}}{{.keys}}
7+
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
8+
if session != nil {
9+
return session.ExecCtx(ctx, statement, args...)
10+
}
11+
return conn.ExecCtx(ctx, statement, args...)
12+
}, {{.keyValues}}){{else}}if session != nil {
13+
return session.ExecCtx(ctx, statement, args...)
14+
}
15+
return m.conn.ExecCtx(ctx, statement, args...){{end}}
1516
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Delete(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error
1+
Delete(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
FindOneBy{{.upperField}}(ctx context.Context, {{.in}}) (*{{.upperStartCamelObject}}, error)
1+
FindOneBy{{.upperField}}(ctx context.Context, session sqlx.Session, {{.in}}) (*{{.upperStartCamelObject}}, error)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
FindOne(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error)
1+
FindOne(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Insert(ctx context.Context, data *{{.upperStartCamelObject}}) (sql.Result,error)
1+
Insert(ctx context.Context, session sqlx.Session, data *{{.upperStartCamelObject}}) (sql.Result,error)

0 commit comments

Comments
 (0)