Golang Go语言:写了个把数据库中的表转换成Go结构体的小工具
https://github.com/jlvihv/dbtogo
写这个主要是为了方便自己使用, 工作的时候有好多表, 一个个建立结构体太麻烦了, 而且容易出错.
github 上虽然也有别人实现的版本, 但是并不好用, 我的需求是选择数据库中的一个表, 生成 go 结构体代码, 然后粘贴到编辑器里, 但别人的都不支持输出到剪贴板.
我写了个支持剪贴板的, 在 linux 和 windows 上验证成功, macos 不清楚, 应该也可以, 希望有同学帮忙试试.
Golang Go语言:写了个把数据库中的表转换成Go结构体的小工具
更多关于Golang Go语言:写了个把数据库中的表转换成Go结构体的小工具的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
我平时都是用 pg ,所以我操作都是 json_agg(*) as table_name ,之后直接把结果复制到 goland 里面,就出结构体了
更多关于Golang Go语言:写了个把数据库中的表转换成Go结构体的小工具的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
ide 装个插件就行了
能否说一下是哪个插件?
https://github.com/MindaWang/to-go-struct-intellij-plugin
昨天刚把原版的改了改。能够解析带 index 关键词的了。未来计划支持 sql.Nullstring
你好!很高兴看到你对Go语言及数据库操作的探索。将数据库中的表转换成Go结构体是一个常见的需求,特别是在使用ORM(对象关系映射)工具时。以下是一些关于你小工具的改进建议和专业见解:
-
自动化映射:你可以使用Go的反射机制和数据库schema信息自动生成结构体。许多ORM库(如GORM、xorm)提供了这样的功能,可以大大减少手动编码的工作量。
-
字段类型匹配:确保数据库字段类型与Go结构体字段类型正确匹配。例如,MySQL的
VARCHAR
通常映射为Go的string
,INT
映射为int
或int64
等。 -
标签(Tag)支持:在结构体字段上使用标签来指定数据库列名、数据类型、是否允许为空等信息。这有助于ORM库正确解析和执行SQL语句。
-
错误处理:增加完善的错误处理逻辑,比如处理数据库连接失败、查询错误等情况。使用Go的
error
类型和panic/recover
机制来捕获和处理异常。 -
配置文件:考虑使用配置文件(如JSON、YAML)来指定数据库连接信息和表名,使工具更加灵活和可配置。
-
单元测试:编写单元测试来验证你的工具在不同情况下的行为,确保代码的健壮性和可靠性。
希望这些建议能对你有所帮助!如果你对某个方面有更具体的问题或需要进一步的帮助,请随时提问。