xorm生成代码 下载源码 1 git clone https://gitea.com/xorm/cmd.git
编译
生成代码 1 ./xorm reverse mysql "root:123456@tcp(127.0.0.1:3306)/doss" templates/goxorm ./model
配置文件 cmd\xorm\templates\goxorm\config
1 2 3 4 5 6 7 8 9 10 11 12 13 # 语言 lang=go # 生成json tag(0:不生成 1:生成) genJson=1 prefix=cos_ # 当genJson=1时,忽略json字段(数据库字段,逗号隔开) ignoreColumnsJSON=detail # 对应数据库字段(逗号隔开) created=created_at # 对应数据库字段(逗号隔开) updated=updated_at # 对应数据库字段(逗号隔开) deleted=deleted_at
设置created
,updated
,deleted
后,CreatedAt
,UpdatedAt
会生成created
,updated
。ignoreColumnsJSON
设置后Detail
变成json:"-"
1 2 3 4 5 6 7 8 9 10 11 12 type LoginLog struct { Id int64 `json:"id" xorm:"pk comment('系统编号') BIGINT(20)"` CreatedAt time.Time `json:"created_at" xorm:"not null default '0000-00-00 00:00:00' created comment('创建时间') DATETIME"` UpdatedAt time.Time `json:"updated_at" xorm:"not null default '0000-00-00 00:00:00' updated comment('更新时间') DATETIME"` UserId int64 `json:"user_id" xorm:"not null comment('用户ID') BIGINT(20)"` Agent string `json:"agent" xorm:"not null comment('登录终端') VARCHAR(50)"` Os string `json:"os" xorm:"not null default '' comment('操作系统') VARCHAR(50)"` Ip string `json:"ip" xorm:"not null default '' comment('登录IP') VARCHAR(50)"` Loc string `json:"loc" xorm:"not null default '' comment('IP所在地') VARCHAR(50)"` Status int `json:"status" xorm:"not null default 0 comment('登录状态(1:成功;2:失败)') TINYINT(4)"` Detail string `json:"-" xorm:"not null default '' comment('详细信息') VARCHAR(50)"` }
移除注释 修改源码reverse.go
,需要修改两处地方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 if err == nil && !info.IsDir() { configs = loadConfig(cfgPath) if l, ok := configs["lang" ]; ok { lang = l } if j, ok := configs["genJson" ]; ok { genJson, err = strconv.ParseBool(j) } if j, ok := configs["prefix" ]; ok { prefix = j } if j, ok := configs["ignoreColumnsJSON" ]; ok { ignoreColumnsJSON = strings.Split(j, "," ) } if j, ok := configs["created" ]; ok { created = strings.Split(j, "," ) } if j, ok := configs["updated" ]; ok { updated = strings.Split(j, "," ) } if j, ok := configs["deleted" ]; ok { deleted = strings.Split(j, "," ) } if j, ok := configs["supportComment" ]; ok { supportComment, err = strconv.ParseBool(j) } } if langTmpl, ok = langTmpls[lang]; !ok { fmt.Println("Unsupported programing language" , lang) return } os.MkdirAll(genDir, os.ModePerm)
修改配置文件cmd\xorm\templates\goxorm\config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 语言 lang=go # 生成json tag(0:不生成 1:生成) genJson=1 prefix=cos_ # 当genJson=1时,忽略json字段(数据库字段,逗号隔开) ignoreColumnsJSON=detail # 对应数据库字段(逗号隔开) created=created_at # 对应数据库字段(逗号隔开) updated=updated_at # 对应数据库字段(逗号隔开) deleted=deleted_at # 增加是否生成注释配置项 # 0:不生成 1:生成 supportComment=0
重新编译代码,重新生成
1 2 3 4 5 6 7 8 9 10 11 12 type LoginLog struct { Id int64 `json:"id" xorm:"pk BIGINT(20)"` CreatedAt time.Time `json:"created_at" xorm:"not null default '0000-00-00 00:00:00' created DATETIME"` UpdatedAt time.Time `json:"updated_at" xorm:"not null default '0000-00-00 00:00:00' updated DATETIME"` UserId int64 `json:"user_id" xorm:"not null BIGINT(20)"` Agent string `json:"agent" xorm:"not null VARCHAR(50)"` Os string `json:"os" xorm:"not null default '' VARCHAR(50)"` Ip string `json:"ip" xorm:"not null default '' VARCHAR(50)"` Loc string `json:"loc" xorm:"not null default '' VARCHAR(50)"` Status int `json:"status" xorm:"not null default 0 TINYINT(4)"` Detail string `json:"detail" xorm:"not null default '' VARCHAR(50)"` }