已经有了 sql2struct、sql2go 这些插件,我为什么还去重复造轮子?
因为别人造的轮子有一些不好用的地方,而且跑别人的仓库去改代码或者下载别人的代码去改有很大的不遍性,同时很多人的仓库不支持配置一些东西,而且有些仓库里的代码是使用的控制台输入模式,使用时很不方便,为了自己的方便同时也为了方便使用者,我就造了个轮子出来
仓库地址: miacio/sql-to-code: go read db table to code (github.com)
这个工具只需要你配置自己的数据库地址以及输出参数等,写在配置文件里即可
如何使用此插件?
首先你得有Go语言环境
然后你就可以照着我写的README.md文件去配置即可了
部分代码实现及理论是用的别人写的库的,所以为了其他同学参照着自己去造轮子,我在参考文档下也添加了访问地址
sql-to-code
(GO语言) 读数据库生成结构体代码工具
这个工具对比其它使用的数据库sql生成代码工具厉害在于其可配置其它数据库类型
比如point类型, 其它工具使用时是无法生成的,但是此工具可以配置自定义类型,让你的代码生成更快捷,更方便
准备
使用此工具前需要安装goimports指令
go get -v golang.org/x/tools/cmd/goimports
go install golang.org/x/tools/cmd/goimports
设置配置文件 (config.toml)
[db]
host="127.0.0.1"
port=3306
user="root"
password="123456"
database="test"
[cfg]
outDir="../model"
tableNames=["user"]
packageName="model"
needTag=["gorm", "json"]
upperFirstLetter=false
humpNaming=false
importOtherType="./fieldOtherType.json"
↑↑↑
db模块配置既数据库模块配置:
host = 数据库地址
port = 数据库端口号
user = 数据库访问用户名
password = 数据库访问密码
database = 数据库库名
cfg模块配置为生成代码方面的配置:
outDir = 代码输出的文件夹路径
tableNames = [对应读的表名数组]
packageName = 输出的代码属于哪一个包
needTag = [需要生成的tag名称数组]
upperFirstLetter = 布尔型值, 生成的tag值是否首字母大写, 这个参数对于gorm类型的tag不起作用
humpNaming = 布尔型值, 生成的tag值是否使用驼峰命名规则, 这个参数对于gorm类型的tag不起作用
importOtherType = 引入的其他类型的配置文件地址
引入的其他类型的配置文件说明
其他类型配置是一个json数组
例如sqltools/sqltools_test.go测试方法
testfile/fieldOtherType.json为例:
[{
"importPath": "",
"fieldType": "IPoint",
"dbType": "point"
},{
"importPath": "",
"fieldType": "IBool",
"dbType": "bit"
}]
其他类型配置文件中的内容是一个json数组,这个json数组可以指定此类型需导入的包, 代码中使用的类型名称, 数据库对应的类型名称
依据此配置即可让工具理解你的意图,将此类型转换为你所指定的类型
运行
如果你是直接拉取的此项目,那么你只需要配置你对应的config.toml后使用 go run /.main.go 即可运行
如果你需要将此工具交给无环境的用户,那么只需要build此项目后,将对应的配置文件与生成的工具同目录,然后配置你的配置文件即可