CodeGeeX怎么写Go模型_CodeGeeX生成GormModel定义【Go模型】

絕刀狂花

絕刀狂花

2026-04-09

882人浏览

原创

使用codegeex生成gorm模型需明确提示结构体名、字段、类型、gorm标签及时间戳等;支持自然语言描述、sql反向解析、模板批量生成,并须人工校验标签完整性、字段大小写与json兼容性。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

codegeex怎么写go模型_codegeex生成gormmodel定义【go模型】

如果您希望使用CodeGeeX快速生成符合GORM规范的Go结构体模型(即GormModel定义),但不确定如何正确编写提示词或处理生成结果,则可能是由于提示语不够明确、未指定GORM标签规则或忽略了字段命名约束。以下是实现该目标的具体方法:

一、使用精准自然语言提示词调用CodeGeeX

CodeGeeX依赖高质量的上下文提示来生成符合预期的Go结构体。需在输入中明确说明包名、结构体名、字段名、数据类型、GORM标签(如gorm:"primaryKey"、gorm:"type:varchar(255)")以及是否启用GORM默认字段(如ID、CreatedAt等)。避免模糊表述如“做个用户表”,而应写成“生成一个User结构体,包含ID(主键)、Name(非空,最大长度100)、Email(唯一索引)、CreatedAt和UpdatedAt时间戳字段,使用GORM v2标签格式”。

1、打开CodeGeeX插件或Web界面,进入代码补全/生成模式。

2、在编辑器中输入注释行:// GORM Model: User, fields: ID(int64, primary key), Name(string, not null, size 100), Email(string, unique index), CreatedAt, UpdatedAt

3、将光标置于注释下方,触发CodeGeeX自动补全,选择生成的Go结构体代码。

4、检查生成结果是否包含gorm.Model嵌入或手动声明的ID uint等字段,确认gorm:标签拼写正确且无多余空格。

二、基于已有数据库表反向生成GormModel

当项目已存在MySQL/PostgreSQL表时,可借助CodeGeeX解析建表SQL并输出对应Go结构体。此方法要求输入SQL语句具备完整字段定义与约束信息,CodeGeeX据此推断非空、索引、主键等GORM行为。

1、从数据库导出建表语句,例如:CREATE TABLE users (id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);

2、在CodeGeeX输入框中粘贴该SQL,并追加指令:// Convert to GORM v2 Go struct with json and gorm tags

3、等待生成结果,验证字段类型映射是否合理(如BIGINT→int64、DATETIME→time.Time)。

4、手动补充缺失的GORM标签,例如为email字段添加gorm:"uniqueIndex",为created_at添加gorm:"column:created_at"

php获得文件的mime type类
php获得文件的mime type类

php获得文件的mime type类

下载

三、利用CodeGeeX+模板片段批量生成多模型

针对含多个关联表的业务场景,可通过预设模板降低重复提示成本。模板需包含通用字段占位符(如{{TableName}}、{{Fields}})及GORM共性配置(如软删除、时间戳),使CodeGeeX能稳定复用结构模式。

1、准备模板文本:// GORM Model Template: {{TableName}}\n// Fields: {{Fields}}\n// Embed gorm.Model, add json tags, use snake_case column names

2、替换占位符为实际内容,例如将{{TableName}}替换为"Product",{{Fields}}替换为"Title(string, size 200), Price(float64), Status(uint8)"。

3、提交至CodeGeeX,获取结构体定义。

4、核对生成的json:标签是否与数据库列名一致(如json:"title"对应title列),必要时调整gorm:"column:title"

四、修正CodeGeeX生成结果中的常见GORM问题

自动生成的模型常出现GORM标签遗漏、时间字段类型错误、JSON标签缺失等问题,需人工校验关键项。重点检查是否启用软删除(DeletedAt *time.Time `gorm:"index"`)、是否禁用默认时间戳(CreatedAt, UpdatedAt是否被显式声明)、是否为外键字段添加gorm:"foreignKey:UserID"等关联标签。

1、定位生成代码中所有time.Time字段,确认其GORM标签含autoCreateTimeautoUpdateTime(若需自动更新)。

2、查找所有字符串字段,检查是否添加gorm:"size:255"等长度限制,避免迁移时默认过长。

3、对含索引需求的字段(如status、category_id),补充gorm:"index"gorm:"uniqueIndex"标签。

4、确保结构体字段首字母大写(导出),且json:标签值为小写蛇形(如json:"user_id"),与API序列化兼容。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

codegeex

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Go中Type关键字的用法
Go中Type关键字的用法

Go中Type关键字的用法有定义新的类型别名或者创建新的结构体类型。本专题为大家提供Go相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.06

1150

5

go怎么实现链表
go怎么实现链表

go通过定义一个节点结构体、定义一个链表结构体、定义一些方法来操作链表、实现一个方法来删除链表中的一个节点和实现一个方法来打印链表中的所有节点的方法实现链表。

2023.09.25

2091

6

go语言编程软件有哪些
go语言编程软件有哪些

go语言编程软件有Go编译器、Go开发环境、Go包管理器、Go测试框架、Go文档生成器、Go代码质量工具和Go性能分析工具等。本专题为大家提供go语言相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.13

402

5

0基础如何学go语言
0基础如何学go语言

0基础学习Go语言需要分阶段进行,从基础知识到实践项目,逐步深入。php中文网给大家带来了go语言相关的教程以及文章,欢迎大家前来学习。

2023.10.26

2752

20

Go语言实现运算符重载有哪些方法
Go语言实现运算符重载有哪些方法

Go语言不支持运算符重载,但可以通过一些方法来模拟运算符重载的效果。使用函数重载来模拟运算符重载,可以为不同的类型定义不同的函数,以实现类似运算符重载的效果,通过函数重载,可以为不同的类型实现不同的操作。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

983

5

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

1208

5

go语言开发工具大全
go语言开发工具大全

本专题整合了go语言开发工具大全,想了解更多相关详细内容,请阅读下面的文章。

2025.06.11

2061

12

go语言引用传递
go语言引用传递

本专题整合了go语言引用传递机制,想了解更多相关内容,请阅读专题下面的文章。

2025.06.26

1196

12

go语言版本升级
go语言版本升级

本专题整合了go语言版本升级方法,想了解更多相关内容,请阅读专题下面的文章。

2025.06.27

2350

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CodeGeex使用手册
CodeGeex使用手册

共0课时 | 0人学习