GoLand 不生成数据库操作代码,仅支持DDL导出、图表可视化和SQL执行;结构体生成需插件辅助,DAO层需外部工具如goframe、ent或sqlc协同完成。

GoLand 本身不生成数据库操作代码(比如 CRUD 函数体或 ORM 模型),它只提供 DDL 导出、图表可视化和 SQL 执行支持。所谓“生成数据库操作代码”,实际依赖的是手动编写 + 插件辅助 + 外部工具协同。
为什么不能直接生成 db.Query/db.Exec 封装函数
GoLand 的 数据库工具和 SQL 插件 负责连接、查询、DDL 导出和图表,但不分析表结构并生成 Go 代码(如 GetUserByID 或 InsertOrder)。这是有意设计:Go 生态中数据访问层风格差异大(原生 sql、sqlx、gorm、ent、squirrel 等),IDE 不预设范式,也不介入业务逻辑封装。
- 你右键表选
SQL 脚本 | 生成 DDL 到剪贴板,得到的是CREATE TABLE,不是 Go 函数 - 你点
图表 | 显示图表,看到的是可视化关系图,不是type User struct - 即使启用
diagrams插件,它也只画图,不产出生代代码
真正能“快速生成”的三类实用路径
以下操作在 GoLand 内可一键触发,且与数据库元数据联动:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
-
Generate DDL:右键表 →SQL 脚本 | 生成 DDL 到查询文件,生成建表语句,可用于初始化或迁移脚本 -
Copy as Go Struct:在数据库工具窗口中右键表 →复制 | 作为 Go 结构体(需插件支持),生成带db标签的struct,字段名自动蛇形转驼峰,类型按常见映射(INT→int64,VARCHAR→string) -
Execute in Console:写好 SQL 后按Ctrl+Enter直接执行,结果以表格形式展示,适合调试查询逻辑
想自动生成 DAO 层?得靠外部工具链
如果你需要从表结构批量生成 Get/Insert/Update 方法,GoLand 只负责“粘合”——把外部工具输出的代码正确识别为 Go 文件,并提供跳转、补全和重构支持。常用组合:
-
goframe gf gen dao:要求项目已集成 goframe,运行后根据internal/model下结构体生成internal/dao中的 CRUD 方法 -
ent gen:配合 entgo,定义 schema 后生成强类型查询器,GoLand 能完整索引生成的代码 - 手工用
sqlc:写 SQL 查询语句 + YAML 配置,sqlc generate输出类型安全的 Go 函数,GoLand 对返回值、参数自动补全
注意:sqlc 和 ent 生成的代码必须放在项目目录内,且 go.mod 正确声明依赖,否则 GoLand 会标红“未解析的导入”。
容易忽略的关键点
很多用户卡在“点了没反应”或“生成的 struct 字段全是小写”,本质是配置断点:
- 确认
数据库工具和 SQL插件已启用(Ctrl+Alt+S→ 插件 → 勾选) -
复制 | 作为 Go 结构体功能依赖数据库连接成功且已完成内省(即树里能看到表字段),若表为空或权限不足,该菜单项灰显 - 生成的 struct 默认使用
json标签,要改db标签需在数据库工具窗口右键表 →设置 | 表达式语言中修改命名策略 - DAO 生成工具(如
gf gen dao)输出的代码若含interface{}或泛型,GoLand 在旧版 Go SDK(

















