Skip to content

Commit ba837ca

Browse files
author
alex cai
committed
可以给生成的结构添加注释
1 parent 8160383 commit ba837ca

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ go-db-models
3030
`*_tb_gen.go`文件样例如下:
3131

3232
```go
33-
3433
// DON'T EDIT *** generated by go-db-models *** DON'T EDIT //
3534
package test
3635

@@ -128,8 +127,10 @@ func AdProjectQuery(db *sql.DB, queryString string) (ad_project []*AdProjectTabl
128127
"name": "ad_plan",
129128
// 需要生成的字段
130129
"fields": ["id", "name", "status", "daily_budget", "start_date", "created_at"],
131-
// 这是可选项,如果定义了该字段,则会自动生成一个类似QueryById的查询函数。
132-
"queryBy": "id"
130+
// [可选]这是可选项,如果定义了该字段,则会自动生成一个类似QueryById的查询函数。
131+
"queryBy": "id",
132+
// [可选]结构体增加注释
133+
"msg": "这是注释。。。"
133134
},
134135
{
135136
"name": "ad_project",

models/json.go

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type JsonTableConf struct {
1515
Name string // 表名
1616
Fields []string // 字段名
1717
QueryBy string // QueryBy函数定义
18+
Msg string // 表结构说明
1819
}
1920

2021
// 将json文件decode成结构体

models/parse_table.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ type ParseTable struct {
1818
PrimaryType string // 主键的类型,如:uint32, sql.NullString等
1919
Imports []string // 需要import的包
2020
SelectFields string // sql查询中的select fields
21+
Msg string // 表结构的说明
2122
Fields []ParseField
22-
23-
QueryBy QueryBy // QueryBy函数,例如QueryById等
23+
QueryBy QueryBy // QueryBy函数,例如QueryById等
2424
}
2525

2626
// 字段的定义
@@ -46,6 +46,7 @@ func ParseTablesStruct(tables []Table, packageName string, modelsConf *JsonConf)
4646
// 配置的预处理
4747
var modelsConfMap = map[string]map[string]bool{} // 第一个下标是表名,第二个下标是字段名
4848
var queryByConf = map[string]string{} // 下标是表名,值是字段名,例如id。
49+
var tableConfMsg = map[string]string{} // 表的注释(在json文件中的)
4950
if len(modelsConf.Tables) > 0 {
5051
for _, tb := range modelsConf.Tables {
5152
modelsConfMap[tb.Name] = map[string]bool{}
@@ -56,6 +57,8 @@ func ParseTablesStruct(tables []Table, packageName string, modelsConf *JsonConf)
5657
if tb.QueryBy != "" {
5758
queryByConf[tb.Name] = tb.QueryBy
5859
}
60+
61+
tableConfMsg[tb.Name] = tb.Msg
5962
}
6063
}
6164

@@ -66,6 +69,7 @@ func ParseTablesStruct(tables []Table, packageName string, modelsConf *JsonConf)
6669

6770
ptable := ParseTable{
6871
Name: table.Name,
72+
Msg: tableConfMsg[table.Name],
6973
PackageName: packageName,
7074
}
7175
ptable.Fields, ptable.Imports, ptable.PrimaryType = ParseFieldsStruct(table.Fields, modelsConfMap[table.Name])

models/template.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import "{{$v}}"{{end}}
1111
import "strings"
1212
import "database/sql"
1313
14-
// 对应数据表:{{.Name}}
14+
// 对应数据表:{{.Name}}{{if .Msg}}
15+
// {{.Msg}}{{end}}
1516
type {{.Name|Format2StructName}}Table struct {
1617
{{range $k, $v := .Fields}}
1718
{{$v.Name|Format2StructName}} {{$v.Type}} {{$v.Name|Format2StructTag}}{{end}}

0 commit comments

Comments
 (0)