diff --git a/lib/struct.go b/lib/struct.go index 75735aa..71bc6e0 100644 --- a/lib/struct.go +++ b/lib/struct.go @@ -18,6 +18,7 @@ type Attr struct { type TableInfo struct { Columns []*Attr Len int + OtherTag string TableName string ShortName string StructName string @@ -34,7 +35,7 @@ import ( ) {{end}} type {{ .StructName }} struct { - {{ range $i,$v := .Columns }}{{ .StructField }} {{ .Type }} ` + "\u0060" + `json:"{{ .Field }}" db:"{{ .Field }}"` + "\u0060{{ if ne $i $.Len }}\n " + `{{ end }}{{ end }} + {{ range $i,$v := .Columns }}{{ .StructField }} {{ .Type }} ` + "\u0060" + `db:"{{ .Field }}" json:"{{ .Field }}"{{ if ne $.OtherTag "" }} form:"{{ .Field }}"{{ end }}` + "\u0060{{ if ne $i $.Len }}\n " + `{{ end }}{{ end }} } func ({{ .ShortName }} *{{ .StructName }}) DbName() string { @@ -50,7 +51,7 @@ func ({{ .ShortName }} *{{ .StructName }}) PK() string { } ` -func ShowStruct(cmd string) error { +func ShowStruct(cmd string, tag string) error { query := fmt.Sprintf("SHOW FULL COLUMNS FROM %s", cmd) datas, err := Exec(query) if err != nil { @@ -65,6 +66,7 @@ func ShowStruct(cmd string) error { } info := &TableInfo{ + OtherTag: tag, Columns: make([]*Attr, 0), TableName: cmd, ShortName: cmd[0:1], diff --git a/main.go b/main.go index 4de3a83..4d5c1c2 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "time" "strings" + _ "github.com/go-sql-driver/mysql" "github.com/ilibs/gosql" "github.com/fifsky/genstruct/lib" ) @@ -76,7 +77,10 @@ func main() { if err != nil { return err } - err = lib.ShowStruct(cmd) + + tag, _ := lib.GetParams(cmds, 2) + + err = lib.ShowStruct(cmd,tag) if err != nil { return err }