diff --git a/GoMybatis.go b/GoMybatis.go
index 9600a32..460070d 100644
--- a/GoMybatis.go
+++ b/GoMybatis.go
@@ -42,13 +42,13 @@ func WriteMapperPtrByEngine(ptr interface{}, xml []byte, sessionEngine SessionEn
//写入方法内容,例如
//type ExampleActivityMapperImpl struct {
// SelectAll func(result *[]Activity) error
-// SelectByCondition func(name string, startTime time.Time, endTime time.Time, page int, size int, result *[]Activity) error `mapperParams:"name,startTime,endTime,page,size"`
+// SelectByCondition func(name string, startTime time.Time, endTime time.Time, page int, size int, result *[]Activity) error `args:"name,startTime,endTime,page,size"`
// UpdateById func(session *GoMybatis.Session, arg Activity, result *int64) error //只要参数中包含有*GoMybatis.Session的类型,框架默认使用传入的session对象,用于自定义事务
// Insert func(arg Activity, result *int64) error
-// CountByCondition func(name string, startTime time.Time, endTime time.Time, result *int) error `mapperParams:"name,startTime,endTime"`
+// CountByCondition func(name string, startTime time.Time, endTime time.Time, result *int) error `args:"name,startTime,endTime"`
//}
-//func的基本类型的参数(例如string,int,time.Time,int64,float....)个数无限制(并且需要用Tag指定参数名逗号隔开,例如`mapperParams:"id,phone"`),返回值必须有error
-//func的结构体参数无需指定mapperParams的tag,框架会自动扫描它的属性,封装为map处理掉
+//func的基本类型的参数(例如string,int,time.Time,int64,float....)个数无限制(并且需要用Tag指定参数名逗号隔开,例如`args:"id,phone"`),返回值必须有error
+//func的结构体参数无需指定args的tag,框架会自动扫描它的属性,封装为map处理掉
//使用WriteMapper函数设置代理后即可正常使用。
func WriteMapper(bean reflect.Value, xml []byte, sessionEngine SessionEngine) {
beanCheck(bean)
@@ -143,7 +143,7 @@ func beanCheck(value reflect.Value) {
}
}
if argsLen > 1 && customLen > 1 {
- panic(`[GoMybats] ` + fieldItem.Name + ` must add tag "mapperParams:"*,*..."`)
+ panic(`[GoMybats] ` + fieldItem.Name + ` must add tag "args:"*,*..."`)
}
}
}
@@ -304,9 +304,9 @@ func methodFieldCheck(beanType *reflect.Type, methodType *reflect.StructField) {
panic(buffer.String())
}
- var mapperParams = methodType.Tag.Get("mapperParams")
- if methodType.Type.NumOut() > 1 && mapperParams == "" && !(methodType.Name == "NewSession") {
- log.Println("[GoMybatis] warning ======================== " + (*beanType).Name() + "." + methodType.Name + "() have not define tag mapperParams:\"\",maybe can not get param value!")
+ var args = methodType.Tag.Get("args")
+ if methodType.Type.NumOut() > 1 && args == "" && !(methodType.Name == "NewSession") {
+ log.Println("[GoMybatis] warning ======================== " + (*beanType).Name() + "." + methodType.Name + "() have not define tag args:\"\",maybe can not get param value!")
}
}
diff --git a/GoMybatisEngine_test.go b/GoMybatisEngine_test.go
index 393903f..18967f4 100644
--- a/GoMybatisEngine_test.go
+++ b/GoMybatisEngine_test.go
@@ -193,12 +193,12 @@ func (it *TestSession) StmtConvert() (stmt.StmtIndexConvert, error) {
}
//定义mapper文件的接口和结构体
-// 支持基本类型(int,string,time.Time,float...且需要指定参数名称`mapperParams:"name"以逗号隔开,且位置要和实际参数相同)
+// 支持基本类型(int,string,time.Time,float...且需要指定参数名称`args:"name"以逗号隔开,且位置要和实际参数相同)
//自定义结构体参数(属性必须大写)
//参数中除了session指针外,为指针类型的皆为数据
// 函数return必须为error 为返回错误信息
type ExampleActivityMapperImpl struct {
- SelectByCondition func(session *Session, name *string, startTime *time.Time, endTime *time.Time, page *int, size *int) ([]example.Activity, error) `mapperParams:"session,name,startTime,endTime,page,size"`
+ SelectByCondition func(session *Session, name *string, startTime *time.Time, endTime *time.Time, page *int, size *int) ([]example.Activity, error) `args:"session,name,startTime,endTime,page,size"`
}
//初始化mapper文件和结构体
diff --git a/GoMybatisProxy.go b/GoMybatisProxy.go
index 0d33184..bd90f95 100644
--- a/GoMybatisProxy.go
+++ b/GoMybatisProxy.go
@@ -25,10 +25,10 @@ func ProxyValue(mapperValue reflect.Value, buildFunc func(funcField reflect.Stru
}
func buildProxy(v reflect.Value, buildFunc func(funcField reflect.StructField, field reflect.Value) func(arg ProxyArg) []reflect.Value) {
- for{
+ for {
if v.Kind() == reflect.Ptr {
v = v.Elem()
- }else{
+ } else {
break
}
}
@@ -74,13 +74,13 @@ func buildProxy(v reflect.Value, buildFunc func(funcField reflect.StructField, f
func buildRemoteMethod(source reflect.Value, f reflect.Value, ft reflect.Type, sf reflect.StructField, proxyFunc func(arg ProxyArg) []reflect.Value) {
var tagParams []string
- var mapperParams = sf.Tag.Get(`mapperParams`)
- if mapperParams != `` {
- tagParams = strings.Split(mapperParams, `,`)
+ var args = sf.Tag.Get(`args`)
+ if args != `` {
+ tagParams = strings.Split(args, `,`)
}
var tagParamsLen = len(tagParams)
if tagParamsLen > ft.NumIn() {
- panic(`[GoMybatisProxy] method fail! the tag "mapperParams" length can not > arg length ! filed=` + sf.Name)
+ panic(`[GoMybatisProxy] method fail! the tag "args" length can not > arg length ! filed=` + sf.Name)
}
var tagArgs = make([]TagArg, 0)
if tagParamsLen != 0 {
@@ -94,7 +94,7 @@ func buildRemoteMethod(source reflect.Value, f reflect.Value, ft reflect.Type, s
}
var tagArgsLen = len(tagArgs)
if tagArgsLen > 0 && ft.NumIn() != tagArgsLen {
- panic(`[GoMybatisProxy] method fail! the tag "mapperParams" length != args length ! filed = ` + sf.Name)
+ panic(`[GoMybatisProxy] method fail! the tag "args" length != args length ! filed = ` + sf.Name)
}
var fn = func(args []reflect.Value) (results []reflect.Value) {
proxyResults := proxyFunc(ProxyArg{}.New(tagArgs, args))
diff --git a/GoMybatisProxy_test.go b/GoMybatisProxy_test.go
index 081b638..caa2c30 100644
--- a/GoMybatisProxy_test.go
+++ b/GoMybatisProxy_test.go
@@ -7,7 +7,7 @@ import (
)
type TestMapper struct {
- SelectByIds func(id string) (string, error) `mapperParams:"ids"`
+ SelectByIds func(id string) (string, error) `args:"ids"`
}
func TestUseMapperValue(t *testing.T) {
diff --git a/GoMybatisTempleteDecoder.go b/GoMybatisTempleteDecoder.go
index e350417..c26556a 100644
--- a/GoMybatisTempleteDecoder.go
+++ b/GoMybatisTempleteDecoder.go
@@ -640,9 +640,9 @@ func (it *GoMybatisTempleteDecoder) DecodeCollectionName(method *reflect.StructF
for i := 0; i < numIn; i++ {
var itemType = method.Type.In(i)
if itemType.Kind() == reflect.Slice || itemType.Kind() == reflect.Array {
- var mapperParams = method.Tag.Get("mapperParams")
- var args = strings.Split(mapperParams, ",")
- if mapperParams == "" || args == nil || len(args) == 0 {
+ var params = method.Tag.Get("args")
+ var args = strings.Split(params, ",")
+ if params == "" || args == nil || len(args) == 0 {
collection = DefaultOneArg + strconv.Itoa(i)
} else {
if args[i] == "" {
diff --git a/GoMybatisTempleteDecoder_test.go b/GoMybatisTempleteDecoder_test.go
index 9beb372..a470a4d 100644
--- a/GoMybatisTempleteDecoder_test.go
+++ b/GoMybatisTempleteDecoder_test.go
@@ -10,10 +10,10 @@ import (
)
type ExampleActivityMapper struct {
- SelectTemplete func(name string, session Session) ([]example.Activity, error) `mapperParams:"name,session"`
- InsertTemplete func(args []example.Activity, session Session) (int64, error) `mapperParams:"args,session"`
- UpdateTemplete func(arg example.Activity, session Session) (int64, error) `mapperParams:"name,session"`
- DeleteTemplete func(name string, session Session) (int64, error) `mapperParams:"name,session"`
+ SelectTemplete func(name string, session Session) ([]example.Activity, error) `args:"name,session"`
+ InsertTemplete func(args []example.Activity, session Session) (int64, error) `args:"args,session"`
+ UpdateTemplete func(arg example.Activity, session Session) (int64, error) `args:"name,session"`
+ DeleteTemplete func(name string, session Session) (int64, error) `args:"name,session"`
}
//初始化mapper文件和结构体
diff --git a/README-ch.md b/README-ch.md
index bd0bb40..d9ed39b 100644
--- a/README-ch.md
+++ b/README-ch.md
@@ -60,7 +60,7 @@ go env -w GOSUMDB=off
//go.mod加入依赖
require (
github.com/go-sql-driver/mysql v1.5.0
- github.com/zhuxiujia/GoMybatis v6.2.2+incompatible
+ github.com/zhuxiujia/GoMybatis v6.2.3+incompatible
)
```
@@ -146,6 +146,7 @@ func main() {
```
xml对应以下定义的Mapper结构体方法,然后将生成对应的SQL语句
+旧版本使用mapperParams的tag,单词太长容易拼错,新版改为args
```go
type Activity struct {
Id string `json:"id"`
@@ -160,12 +161,12 @@ type Activity struct {
}
type ExampleActivityMapper struct {
//调用即可生成sql(带有逻辑删除) select * from biz_activity where delete_flag = 1 and name = #{name}
- SelectTemplete func(name string) ([]Activity, error) `mapperParams:"name"`
+ SelectTemplete func(name string) ([]Activity, error) `args:"name"`
InsertTemplete func(arg Activity) (int64, error)
- InsertTempleteBatch func(args []Activity) (int64, error) `mapperParams:"args"`
+ InsertTempleteBatch func(args []Activity) (int64, error) `args:"args"`
//生成sql(带有乐观锁.逻辑删除) update biz_activity set name = #{name},remark=#{remark},version=#{version+1} where delete_flag = 1 and id = #{id} and version = #{version}
- UpdateTemplete func(arg Activity) (int64, error) `mapperParams:"name"`
- DeleteTemplete func(name string) (int64, error) `mapperParams:"name"`
+ UpdateTemplete func(arg Activity) (int64, error) `args:"name"`
+ DeleteTemplete func(name string) (int64, error) `args:"name"`
}
```
diff --git a/README.md b/README.md
index 397f3e7..73eb34f 100644
--- a/README.md
+++ b/README.md
@@ -150,11 +150,11 @@ type Activity struct {
DeleteFlag int `json:"deleteFlag"`
}
type ExampleActivityMapper struct {
- SelectTemplete func(name string) ([]Activity, error) `mapperParams:"name"`
+ SelectTemplete func(name string) ([]Activity, error) `args:"name"`
InsertTemplete func(arg Activity) (int64, error)
- InsertTempleteBatch func(args []Activity) (int64, error) `mapperParams:"args"`
- UpdateTemplete func(arg Activity) (int64, error) `mapperParams:"name"`
- DeleteTemplete func(name string) (int64, error) `mapperParams:"name"`
+ InsertTempleteBatch func(args []Activity) (int64, error) `args:"args"`
+ UpdateTemplete func(arg Activity) (int64, error) `args:"name"`
+ DeleteTemplete func(name string) (int64, error) `args:"name"`
}
```
diff --git a/example/Example_ActivityMapper.xml b/example/Example_ActivityMapper.xml
index 963b242..d0b9062 100644
--- a/example/Example_ActivityMapper.xml
+++ b/example/Example_ActivityMapper.xml
@@ -39,7 +39,7 @@
-
+