# go2struct **Repository Path**: zhouli1369/go2struct ## Basic Information - **Project Name**: go2struct - **Description**: 一个golang写的工具,用来生成gorm等go struct的工具类,也可以根据模板自定义想要生成的文件 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-25 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go2struct 目前主要是生成gorm的struct实体,支持的数据库类型如下 | Mysql | Postgre | SqlServer | |:-----:|:-------:|:---------:| | ✅ | ✅ | ⛔ | 支持的语言: go/dotnet ### 一、GoLand本地编译 | 配置项目 | 配置内容 | |-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| | Run kind | Directory | | Directory | /Users/xxx/Develop/gitgo/go2struct | | Program arguments | go mysql "root:123456@(127.0.0.1:3306)/test?charset=utf8" ./tpl/gorm.tpl ./models/gomysql | | Program arguments | go postgre "host=127.0.0.1 user=postgres password=123456 dbname=test port=25432 sslmode=disable TimeZone=Asia/Shanghai" ./tpl/gorm.tpl ./models/gopostgre | | Program arguments | dotnet mysql "root:123456@(127.0.0.1:3306)/test?charset=utf8" ./tpl/gorm.tpl ./models/mysql | 编译二进制 ```bash # 编译本地环境 go build -ldflags "-s -w" -o /Users/xxx/Desktop/go2struct # 编译windows x64 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o /Users/xxx/Desktop/go2struct # 编译windows x32 GOOS=windows GOARCH=386 go build -ldflags "-s -w" -o /Users/xxx/Desktop/go2struct ``` ### 二、源码安装 #### 2.1、go环境 本地安装好golang,并检查window环境变量,确保配置和GOPATH和PATH环境变量,如图 ![输入图片说明](https://images.gitee.com/uploads/images/2019/1127/154949_3f5db1e8_90222.jpeg "GOPATH环境变量.jpg") ![输入图片说明](https://images.gitee.com/uploads/images/2019/1127/155009_a362d4c6_90222.jpeg "PATH环境变量.jpg") #### 2.2. go get安装 ``` go get -u gitee.com/zhouli1369/go2struct ``` 安装完毕后 %GOPATH%/bin目录下可以看到go2struct.exe ### 三、tpl模版文件说明 模版文件gorm-mysql.tpl是可以修改的,用的是golang标准的html/template语法,可以自行修改 ### 四、二进制文件运行 进入指定的文件夹下执行指令(如F:/test) #### 4.1、参数说明: | 参数索引 | 参数参考值 | 参数说明 | |-------|---------------------------------|-----------------------| | 1 | go | 要生成的目标语言:go/dotnet | | 2 | mysql | 连接的数据类型:mysql/postgre | | 3 | root:123456@(127.0.0.1:3306)... | 数据库连接dsn | | 4 | ./gorm.tpl | 模版文件路径 | | 5 | ./models/gomysql | 生成实体的文件夹路径 | #### 4.2、执行文件 命名参数文档 :https://gitee.com/zhouli1369/go2struct/blob/master/README.md 生成go结构体 ```bash # 指定GOPATH里的模版文件 ./go2struct go mysql "root:123456@(127.0.0.1:3306)/test?charset=utf8" %GOPATH%/src/gitee.com/zhouli1369/go2struct/tpl/gorm.tpl ./models/gomysql # 先对模版路径 ./go2struct go mysql "root:123456@(127.0.0.1:3306)/scriptdb?charset=utf8" ./gorm.tpl ./models/gomysql ``` 生成.net实体 ```bash # 生成资源.net数据库实体 ./go2struct dotnet mysql "root:123@(127.0.0.1:3306)/test?charset=utf8" ./tpl/dotnet.tpl ./resource-entity # 生成资源.net视图实体 ./go2struct dotnet mysql "root:123@(127.0.0.1:3306)/test?charset=utf8" ./tpl/dotnet-view.tpl ./resource-view ``` 生成案例 ![输入图片说明](https://images.gitee.com/uploads/images/2019/1127/160141_0f924f0d_90222.jpeg "333.jpg")