安装go-sql-driver/mysql
[root@localhost Work]# go get -u github.com/go-sql-driver/mysql
go: downloading github.com/go-sql-driver/mysql v1.6.0
安装xorm
[root@localhost Work]# go get github.com/go-xorm/xorm
go: downloading github.com/go-xorm/xorm v0.7.9
go: downloading xorm.io/builder v0.3.6
go: downloading xorm.io/core v0.7.2-0.20190928055935-90aeac8d08eb
安装xorm的cmd命令工具
[root@localhost Work]# go get -u github.com/go-xorm/cmd/xorm
go: downloading github.com/go-xorm/cmd/xorm v0.0.0-20190426080617-f87981e709a1
go: downloading github.com/go-xorm/cmd v0.0.0-20190426080617-f87981e709a1
go: downloading github.com/denisenkom/go-mssqldb v0.0.0-20180707235734-242fa5aa1b45
go: downloading github.com/go-sql-driver/mysql v0.0.0-20180719071942-99ff426eb706
go: downloading github.com/go-xorm/core v0.6.1-0.20181008132326-6bc9412b1c4d
go: downloading github.com/go-xorm/xorm v0.0.0-20180925133144-7a9249de3324
go: downloading github.com/lib/pq v0.0.0-20180523175426-90697d60dd84
go: downloading github.com/lunny/log v0.0.0-20160921050905-7887c61bf0de
go: downloading github.com/mattn/go-sqlite3 v1.9.0
go: downloading github.com/ziutek/mymysql v0.0.0-20171217234033-ff6cc86d3d93
go: downloading google.golang.org/appengine v1.4.0
go: downloading cloud.google.com/go v0.37.0
go: downloading golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a
go: downloading github.com/go-xorm/builder v0.0.0-20180826070321-377feedb49e3
找到xorm安装的目录
[root@localhost /]# find / -name '*xorm*'
/data/Work/GOPATH/pkg/mod/github.com/kataras/iris/v12@v12.1.8/_examples/orm/xorm
/data/GOPATH/pkg/mod/cache/download/github.com/go-xorm
/data/GOPATH/pkg/mod/cache/download/github.com/go-xorm/xorm
/data/GOPATH/pkg/mod/cache/download/github.com/go-xorm/cmd/xorm
/data/GOPATH/pkg/mod/cache/download/sumdb/sum.golang.org/lookup/github.com/go-xorm
/data/GOPATH/pkg/mod/cache/download/sumdb/sum.golang.org/lookup/github.com/go-xorm/xorm@v0.7.9
/data/GOPATH/pkg/mod/cache/download/sumdb/sum.golang.org/lookup/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1
/data/GOPATH/pkg/mod/cache/download/sumdb/sum.golang.org/lookup/github.com/go-xorm/xorm@v0.0.0-20180925133144-7a9249de3324
/data/GOPATH/pkg/mod/cache/download/sumdb/sum.golang.org/lookup/xorm.io
/data/GOPATH/pkg/mod/cache/download/xorm.io
/data/GOPATH/pkg/mod/github.com/kataras/iris/v12@v12.1.8/_examples/orm/xorm
/data/GOPATH/pkg/mod/github.com/go-xorm
/data/GOPATH/pkg/mod/github.com/go-xorm/xorm@v0.7.9
/data/GOPATH/pkg/mod/github.com/go-xorm/xorm@v0.7.9/xorm.go
/data/GOPATH/pkg/mod/github.com/go-xorm/xorm@v0.7.9/xorm_test.go
/data/GOPATH/pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1
/data/GOPATH/pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/templates/goxorm
/data/GOPATH/pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/xorm.go
/data/GOPATH/pkg/mod/github.com/go-xorm/xorm@v0.0.0-20180925133144-7a9249de3324
/data/GOPATH/pkg/mod/github.com/go-xorm/xorm@v0.0.0-20180925133144-7a9249de3324/xorm.go
/data/GOPATH/pkg/mod/github.com/go-xorm/xorm@v0.0.0-20180925133144-7a9249de3324/xorm_test.go
/data/GOPATH/pkg/mod/xorm.io
/data/GOPATH/bin/xorm
进入目录,创建templates/goxorm 文件夹,建立config和struct.go.tpl文件,模板内容可以根据你自己的需要修改
config内容:
lang=go
genJson=0
prefix=
设置 config 文件中的 genJson=1,生成的数据库表结构体就带 json 字样
例:
type account struct {
Id int64 `json:"id" xorm:"autoincr index BIGINT(20"`
//.....
}
struct.go.tpl内容:
package {{.Models}}
{{$ilen := len .Imports}}
{{if gt $ilen 0}}
import (
{{range .Imports}}"{{.}}"{{end}}
)
{{end}}
{{range .Tables}}
type {{Mapper .Name}} struct {
{{$table := .}}
{{range .ColumnsSeq}}{{$col := $table.GetColumn .}} {{Mapper $col.Name}} {{Type $col}} {{Tag $table $col}}
{{end}}
}
{{end}}
执行命令:
[root@localhost cmd]# xorm reverse mysql "mysql_user:mysql_pwd@tcp(127.0.0.1:3306)/lottery?charset=utf8" templates/goxorm/
[root@localhost cmd]# ll models/
total 24
-rw-r--r-- 1 root root 438 Aug 18 22:16 lt_blackip.go
-rw-r--r-- 1 root root 559 Aug 18 22:16 lt_code.go
-rw-r--r-- 1 root root 1856 Aug 18 22:16 lt_gift.go
-rw-r--r-- 1 root root 1006 Aug 18 22:16 lt_result.go
-rw-r--r-- 1 root root 509 Aug 18 22:16 lt_userday.go
-rw-r--r-- 1 root root 756 Aug 18 22:16 lt_user.go
网友评论