在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:gormt开源软件地址:https://gitee.com/xxjwxc/gormt开源软件介绍:gorm-toolsmysql数据库转 struct 工具,可以将mysql数据库自动生成golang sturct结构,带大驼峰命名规则。带json标签交互界面模式./gormt -g=true 命令行模式./gormt -g=false 安装go get -u -v github.com/xxjwxc/gormt@master 或者: 下载地址 1. 通过当前目录 config.yml 文件配置默认配置项注意:最新的配置请参考 MyIni.go, 或使用命令行工具默认生成的。 base: is_dev: falseout_dir: ./model # 输出目录url_tag: json # web url tag(json,db(https://github.com/google/go-querystring))language: 中 文 # 语言(English,中 文)db_tag: gorm # 数据库标签(gorm,db)simple: false # 简单输出(默认gorm标签不输出)is_out_sql: false # 是否输出 sql 原信息is_out_func: true # 是否输出 快捷函数is_foreign_key: true # 是否导出外键关联is_gui: false # 是否ui模式显示is_table_name: false # 是否直接生成表名,列名is_null_to_point: false # 数据库默认 'DEFAULT NULL' 时设置结构为指针类型is_web_tag: falseis_web_tag_pk_hidden: falsetable_prefix: "" #表前缀db_info: host : 127.0.0.1 port : 3306 username : root password : qwer database : oauth_db type: 0 # 数据库类型:0:mysql , 1:sqlite , 2:mssqlself_type_define: # 自定义数据类型映射 datetime: time.Time date: time.Timeout_file_name: "" # 自定义生成文件名web_tag_type: 0 # json tag类型 0: 小驼峰 1: 下划线 2. 可以使用命令行工具更新配置项./gormt -H=127.0.0.1 -d=oauth_db -p=qwer -u=root --port=3306 命令行工具默认会生成 3. 查看帮助./gormt --helpor./gormt -h-------------------------------------------------------base on gorm tools for mysql database to golang structUsage: main [flags]Flags: -d, --database string 数据库名 -f, --foreign 是否导出外键关联 -F, --fun 是否导出函数 -g, --gui 是否ui显示模式 -h, --help help for main -H, --host string 数据库地址.(注意-H为大写) -o, --outdir string 输出目录 -p, --password string 密码. --port int 端口号 (default 3306) -s, --singular 是否禁用表名复数 -l, --url string url标签(json,url) -u, --user string 用户名. 4. 支持gorm 相关属性
您可以在这里丰富数据映射类型 def 。5. 示例展示sql: CREATE TABLE `user_account_tbl` ( `id` int(11) NOT NULL AUTO_INCREMENT, `account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `account_type` int(11) NOT NULL DEFAULT '0' COMMENT '帐号类型:0手机号,1邮件', `app_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'authbucket_oauth2_client表的id', `user_info_tbl_id` int(11) NOT NULL, `reg_time` datetime DEFAULT NULL, `reg_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `bundle_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `describ` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `account` (`account`) USING BTREE, KEY `user_info_id` (`user_info_tbl_id`) USING BTREE, CONSTRAINT `user_account_tbl_ibfk_1` FOREIGN KEY (`user_info_tbl_id`) REFERENCES `user_info_tbl` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户账号' --->导出结果// UserAccountTbl 用户账号type UserAccountTbl struct { ID int `gorm:"primary_key"` Account string `gorm:"unique"` Password string AccountType int // 帐号类型:0手机号,1邮件 AppKey string // authbucket_oauth2_client表的id UserInfoTblID int `gorm:"index"` UserInfoTbl UserInfoTbl `gorm:"association_foreignkey:user_info_tbl_id;foreignkey:id"` // 用户信息 RegTime time.Time RegIP string BundleID string Describ string} 更多>>>6. 支持函数导出(导出函数只是 gorm 的辅助类函数,完全兼调用 gorm)// FetchByPrimaryKey primay or index 获取唯一内容func (obj *_UserAccountTblMgr) FetchByPrimaryKey(ID int) (result UserAccountTbl, err error) { err = obj.DB.Table(obj.GetTableName()).Where("id = ?", ID).Find(&result).Error if err == nil && obj.isRelated { { var info UserInfoTbl // 用户信息 err = obj.DB.Table("user_info_tbl").Where("id = ?", result.UserInfoTblID).Find(&info).Error if err != nil { return } result.UserInfoTbl = info } } return} 更多>>>函数调用示例>>>7. 构建make windowsmake linuxmake mac or go generate 说明:windows 不支持中文默认方式。ASCALL 模式切换编码方式 CHCP 65001 列注释 tag
8. 下一步计划
9. 提供一个windows 可视化工具点赞时间线 |
请发表评论