Skip to content

Commit ee030b4

Browse files
committed
修改template参数处理方式:1个参数直接传递,多个参数以切片类型传递
1 parent 0048a49 commit ee030b4

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

parsing/template/parse.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ func (p *Parser) ParseMetadata(driverName string, params ...interface{}) (*sqlpa
3636
}
3737
b := strings.Builder{}
3838
var param interface{} = nil
39-
if len(params) > 0 {
39+
if len(params) == 1 {
4040
param = params[0]
41+
} else {
42+
param = params
4143
}
4244
dynamic := selectDynamic(driverName)
4345
tpl := p.tpl.Funcs(dynamic.getFuncMap())

test/postgresql/runner_test.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,15 +259,27 @@ func TestSession(t *testing.T) {
259259
t.Log(ret)
260260
})
261261

262-
t.Run("default", func(t *testing.T) {
262+
t.Run("template", func(t *testing.T) {
263+
mgr := gobatis.NewSessionManager(connect())
264+
mgr.SetParserFactory(gobatis.TemplateParserFactory)
265+
var ret []TestTable
266+
mgr.NewSession().Select("SELECT * FROM test_table WHERE id = {{.}}").Param(2).Result(&ret)
267+
t.Log(ret)
268+
})
269+
270+
t.Run("template arg", func(t *testing.T) {
263271
mgr := gobatis.NewSessionManager(connect())
264272
mgr.SetParserFactory(gobatis.TemplateParserFactory)
265-
var ret1 []TestTable
266-
mgr.NewSession().Select("SELECT * FROM test_table WHERE id = {{arg .}}").Param(2).Result(&ret1)
267-
t.Log(ret1)
273+
var ret []TestTable
274+
mgr.NewSession().Select("SELECT * FROM test_table WHERE id = {{arg .}}").Param(2).Result(&ret)
275+
t.Log(ret)
276+
})
268277

269-
var ret2 []TestTable
270-
mgr.NewSession().Select("SELECT * FROM test_table WHERE id = {{.}}").Param(2).Result(&ret2)
271-
t.Log(ret2)
278+
t.Run("template 2param", func(t *testing.T) {
279+
mgr := gobatis.NewSessionManager(connect())
280+
mgr.SetParserFactory(gobatis.TemplateParserFactory)
281+
var ret []TestTable
282+
mgr.NewSession().Select("SELECT * FROM test_table WHERE id = {{arg (index . 0)}} AND username = {{arg (index . 1)}}").Param(2, "user").Result(&ret)
283+
t.Log(ret)
272284
})
273285
}

0 commit comments

Comments
 (0)