内容简介:mysql表结构自动生成golang structresult
a lib for golang , generate mysql table schema to golang struct
mysql表结构自动生成golang struct
github地址
https://github.com/gohouse/converter
安装
- 直接下载可执行文件: 下载地址
-
golang源码包:
go get github.com/gohouse/converter
示例表结构
CREATE TABLE `prefix_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Email` varchar(32) NOT NULL DEFAULT '' COMMENT '邮箱', `Password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码', `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'
命令行用法
- 下载对应平台的可执行文件, 下载地址
-
命令行执行
# 文件名: table2struct-[$platform].[$version].[$suffix] ./table2struct-linux.v0.0.3.bin -file model.go -dsn xxx -table user
- 参数说明
-dsn string 数据库dsn配置 -enableJsonTag bool 是否添加json的tag -file string 保存路径 -packageName string 包名 -prefix string 表前缀 -realNameMethod string 结构体对应的表名 -table string 要迁移的表 -tagKey string tag的key
golang代码简单用法
package main
import (
"fmt"
"github.com/gohouse/converter"
)
func main() {
err := converter.NewTable2Struct().
SavePath("/home/go/project/model/model.go").
Dsn("root:root@tcp(localhost:3306)/test?charset=utf8").
Run()
fmt.Println(err)
}
golang代码详细用法示例
package main
import (
"fmt"
"github.com/gohouse/converter"
)
func main() {
// 初始化
t2t := converter.NewTable2Struct()
// 个性化配置
t2t.Config(&converter.T2tConfig{
// 如果字段首字母本来就是大写, 就不添加tag, 默认false添加, true不添加
RmTagIfUcFirsted: false,
// tag的字段名字是否转换为小写, 如果本身有大写字母的话, 默认false不转
TagToLower: false,
// 字段首字母大写的同时, 是否要把其他字母转换为小写,默认false不转换
UcFirstOnly: false,
//// 每个struct放入单独的文件,默认false,放入同一个文件(暂未提供)
//SeperatFile: false,
})
// 开始迁移转换
err := t2t.
// 指定某个表,如果不指定,则默认全部表都迁移
Table("user").
// 表前缀
Prefix("prefix_").
// 是否添加json tag
EnableJsonTag(true).
// 生成struct的包名(默认为空的话, 则取名为: package model)
PackageName("model").
// tag字段的key值,默认是orm
TagKey("orm").
// 是否添加结构体方法获取表名
RealNameMethod("TableName").
// 生成的结构体保存路径
SavePath("/Users/fizz/go/src/github.com/gohouse/gupiao/model/model.go").
// 数据库dsn,这里可以使用 t2t.DB() 代替,参数为 *sql.DB 对象
Dsn("root:root@tcp(localhost:3306)/test?charset=utf8").
// 执行
Run()
fmt.Println(err)
}
result
package model
import "time"
type User struct {
Id int `json:"Id" orm:"Id"`
Email string `json:"Email" orm:"Email"` // 邮箱
Password string `json:"Password" orm:"Password"` // 密码
CreatedAt string `json:"CreatedAt" orm:"CreatedAt"`
}
func (*User) TableName() string {
return "user"
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
七步掌握业务分析
芭芭拉·A·卡克诺德 / 2010-9 / 49.00元
《七步掌握业务分析》内容简介:业务分析师是新兴的专业职务。在组织或项目中,业务分析师通过与项目干系人合作,采取一系列技术和知识,分析、理解组织或项目需求,并实现组织或项目目标,提出解决方案。《七步掌握业务分析》作者是国际业务分析协会(IIBA)的《业务分析知识体系指南》BABOK创作委员会的核心成员,全书结合BABOK的标准,以通俗易懂的语言阐述了业务分析的基本概念、任务与目标,介绍了从初级业务分......一起来看看 《七步掌握业务分析》 这本书的介绍吧!