Golang Go语言:写了个把数据库中的表转换成Go结构体的小工具

发布于 1周前 作者 ionicwang 来自 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

6 回复

我平时都是用 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(对象关系映射)工具时。以下是一些关于你小工具的改进建议和专业见解:

  1. 自动化映射:你可以使用Go的反射机制和数据库schema信息自动生成结构体。许多ORM库(如GORM、xorm)提供了这样的功能,可以大大减少手动编码的工作量。

  2. 字段类型匹配:确保数据库字段类型与Go结构体字段类型正确匹配。例如,MySQL的VARCHAR通常映射为Go的stringINT映射为intint64等。

  3. 标签(Tag)支持:在结构体字段上使用标签来指定数据库列名、数据类型、是否允许为空等信息。这有助于ORM库正确解析和执行SQL语句。

  4. 错误处理:增加完善的错误处理逻辑,比如处理数据库连接失败、查询错误等情况。使用Go的error类型和panic/recover机制来捕获和处理异常。

  5. 配置文件:考虑使用配置文件(如JSON、YAML)来指定数据库连接信息和表名,使工具更加灵活和可配置。

  6. 单元测试:编写单元测试来验证你的工具在不同情况下的行为,确保代码的健壮性和可靠性。

希望这些建议能对你有所帮助!如果你对某个方面有更具体的问题或需要进一步的帮助,请随时提问。

回到顶部