Golang xorm工具,根据数据库自动生成 go 代码

Posted liuzhongchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang xorm工具,根据数据库自动生成 go 代码相关的知识,希望对你有一定的参考价值。

使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型。因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段名的对应关系。久而久之,这是一个非常繁琐的过程。事情变得繁琐了,我们都会想,有没有好的办法自动生成 model 呢?今天,记录一种自动生成代码的方法 —— xorm 工具。

关于 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记录版本(即乐观锁)

xorm 工具

xorm 是一组数据库操作命令的工具,包含如下命令:

  • reverse 反转一个数据库结构,生成代码
  • shell 通用的数据库操作客户端,可对数据库结构和数据操作
  • dump Dump数据库中所有结构和数据到标准输出
  • source 从标注输入中执行SQL文件
  • driver 列出所有支持的数据库驱动

那我们该如何使用 reverse 命令根据数据表结构生成 go 代码呢?

go get github.com/go-xorm/cmd/xorm
go get github.com/go-xorm/xorm

到GOPATHsrcgithub.comgo-xormcmdxorm 目录下,执行

go build

这时在此目录了下生成xorm.exe文件

接下来开始执行

./xorm reverse mysql root:[email protected]?charset=utf8 templates/goxorm

接下来在当前目录models中生成以下文件:

技术分享图片

 

以上是关于Golang xorm工具,根据数据库自动生成 go 代码的主要内容,如果未能解决你的问题,请参考以下文章

golang xorm reverse 自动生成数据库实体文件

golang xorm应用

golang-xorm库快速学习

golang的xorm如何将[]map[string][]byte 格式的数据序列化成json输出

Golang 项目中 ORM 选择,gorm xorm 对比

Golang, MySQL连接不设置时区的问题