使用xorm工具,根据数据库自动生成 go 代码
关于 xorm
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。我在项目中经常使用,它的特性如下:
- 支持Struct和数据库表之间的灵活映射,并支持自动同步表结构
- 事务支持
- 支持原始SQL语句和ORM操作的混合执行
- 使用连写来简化调用
- 支持使用Id, In, Where, Limit, Join, Having, Table, Sql, Cols等函数和结构体等方式作为条件
- 支持级联加载Struct
- 支持LRU缓存(支持memory, memcache, leveldb, redis缓存Store) 和 Redis缓存
- 支持反转,即根据数据库自动生成xorm的结构体
- 支持事件
- 支持created, updated, deleted和version记录版本(即乐观锁)
想了解更多请移步:http://www.xorm.io/
xorm 工具
xorm 是一组数据库操作命令的工具,包含如下命令:
- reverse 反转一个数据库结构,生成代码
- shell 通用的数据库操作客户端,可对数据库结构和数据操作
- dump Dump数据库中所有结构和数据到标准输出
- source 从标注输入中执行SQL文件
- driver 列出所有支持的数据库驱动
首先下载该工具 :
1 | go get github.com/go-xorm/cmd/xorm |
同时需要安装对应的 driver :
1 | go get github.com/go-sql-driver/mysql //MyMysql |
还需要下载 xorm :
1 | go get github.com/go-xorm/xorm |
编译 cmd/xorm
会生成 xorm 工具, 假如环境变量。
这时候,执行 xorm help reverse
能获取帮助信息如下:
1 | usage: xorm reverse [-s] driverName datasourceName tmplPath [generatedPath] [tableFilterReg] |
例如:.\xorm.exe reverse mysql root:123456@(127.0.0.1:3306)/source?charset=utf8 F:\gopro\src\github.com\go-xorm\cmd\xorm\templates\goxorm
反向生成的model将会在github.com\go-xorm\cmd\xorm 目录下
命令行添加-s后,数据库的表结构将会都存在于struct.go文件中
另外在github.com\go-xorm\cmd\xorm\templates\goxorm目录下的config文件可以配置go-xorm/cmd运行的语言、是否生成json、前缀。
struct.go.tpl则可以设置反向生成结构表的模板