一、先安装好需要的东西
xorm 也可以参考官方文档 readme.md https://github.com/go-xorm/cmd 和 http://xorm.io/docs/
go get github.com/go-xorm/cmd/xorm
安装驱动版本,选择自己需要用的
go get github.com/go-sql-driver/mysql //Mysql
go get github.com/ziutek/mymysql/godrv //MyMysql
go get github.com/lib/pq //Postgres
go get github.com/mattn/go-sqlite3 //SQLite
go get github.com/denisenkom/go-mssqldb //MSSQL
二、测试xorm cmd是否安装成功
xorm help reverse
xorm reverse命令参数如下所示:
D:\MyConfiguration\xxx>xorm help reverse
usage: xorm reverse [-s] driverName datasourceName tmplPath [generatedPath] [tableFilterReg]
according database's tables and columns to generate codes for Go, C++ and etc.
-s Generated one go file for every table
driverName Database driver name, now supported four: mysql mymysql sqlite3 postgres
datasourceName Database connection uri, for detail infomation please visit driver's project page
tmplPath Template dir for generated. the default templates dir hasprovide 1 template
generatedPath This parameter is optional, if blank, the default value is models, then will
generated all codes in models dir
tableFilterReg Table name filter regexp
注意的是下面指令中的templates/goxorm 指的是%GOPATH%/Src\github.com\go-xorm\cmd\xorm\templates\goxorm如果是cd切换到了%GOPATH%/Src\github.com\go-xorm\cmd\xorm的目录,就可以使用下面的指令,否则tmplPath请填写完整路径。
database | command |
---|---|
sqlite | xorm reverse sqite3 test.db templates/goxorm C:\temp |
mysql | xorm reverse mysql “root:123456@(127.0.0.1:3306)/test?charset=utf8” templates/goxorm C:\temp |
mymysql | xorm reverse postgres “user=postgres password=123456 dbname=test host=127.0.0.1 port=5432 sslmode=disable” templates/goxorm C:\temp |
mssql | xorm reverse mssql “server=127.0.0.1;user id=testid;password=testpwd;database=testdb” templates/goxorm C:\tempp |
ps:command 最后的 C:\temp 是指定 generatedPath(代码生成的目录)方便找到生成的代码,此参数非必填。可以在项目里创建一个bat批处理文件直接生成实体代码。
参考案例:MSSQL:
方式一:指定 tmplPath(生成代码的模板文件)绝对路径
xorm reverse mssql "server=127.0.0.1;user id=sa;password=123456;database=shifenzheng" %GOPATH%\Src\github.com\go-xorm\cmd\xorm\templates\goxorm C:\temp
方式二:cd先切换到xorm/cmd/xorm文件夹下再执行
cd %GOPATH%/Src\github.com\go-xorm\cmd\xorm
xorm reverse mssql "server=127.0.0.1;user id=sa;password=123456;database=shifenzheng" templates\goxorm C:\temp
如图:
如果生成报错 Unknown colType: USER-DEFINED ,是因为表中有列包含了自定义数据类型,xorm官方暂时还不支持(如 ltree、postgis等)