使用codegeex生成gorm代码需五步:一、输入含主键/索引/软删除等语义的结构化提示;二、用“// gorm xxx”模板触发精准代码块;三、提供建表sql反向生成模型;四、多轮对话补充钩子、事务等高级特性;五、显式要求生成含环境变量连接、自动迁移及错误处理的初始化代码。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望使用CodeGeeX快速生成Go语言中基于GORM的数据库操作代码,则需明确模型定义、表结构意图及CRUD场景。以下是实现该目标的具体方法:
一、在CodeGeeX中输入结构化自然语言提示
CodeGeeX依赖高质量提示词(prompt)触发准确的代码生成,需包含Go语法约束、GORM版本暗示及字段语义。提示应避免模糊描述,强调主键、外键、索引和软删除等关键行为。
1、打开CodeGeeX插件或网页端界面,进入代码补全/生成模式。
2、输入类似如下提示:“用Go写一个GORM v2模型,对应MySQL表user,字段包括id(int64主键)、name(string,非空)、email(string,唯一索引)、created_at(time.Time)、deleted_at(gorm.DeletedAt,启用软删除)”。
3、按下回车或点击生成按钮,等待CodeGeeX返回完整struct定义及GORM标签声明。
二、使用预设模板指令调用GORM代码块
CodeGeeX支持识别特定模板关键词,如“GORM CRUD示例”“GORM迁移命令”等,可直接命中常用代码片段模式,减少自由描述偏差。
1、在编辑器中新建.go文件,光标置于空行,输入注释:// GORM Create user example。
2、触发CodeGeeX自动补全,选择推荐的代码块,确认生成含db.Create(&user)调用的函数。
3、同理,输入// GORM Find by email可生成带Where("email = ?", email).First(&user)的查询逻辑。
三、结合已有数据库反向生成GORM模型
当已有MySQL表时,可通过描述表结构让CodeGeeX推导GORM模型,无需手动映射字段类型与标签。
1、在提示中列出实际建表SQL,例如:“CREATE TABLE orders (order_id BIGINT PRIMARY KEY, amount DECIMAL(10,2), status ENUM('pending','paid') NOT NULL, created DATETIME); 请生成对应GORM v2 Go struct”。
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
2、CodeGeeX将输出含gorm.Model嵌入、列名映射(json tag与gorm tag分离)、枚举字段处理建议的struct。
3、检查生成结果中是否包含sql.NullString或自定义Scanner/Valuer接口补充,必要时追加提示要求增强空值兼容性。
四、利用CodeGeeX多轮对话细化GORM行为
单次提示可能遗漏事务控制、预加载关联、钩子函数等高级特性,需通过连续追问引导生成完整逻辑链。
1、首轮生成基础模型后,紧接着输入:“为该User模型添加BeforeCreate钩子,自动设置name为小写”。
2、接收返回的func (u *User) BeforeCreate(tx *gorm.DB) error { u.Name = strings.ToLower(u.Name) }实现。
3、再追加提示:“写一个事务函数,同时创建user和关联profile记录”,获取含db.Transaction调用的封装函数。
五、校验并注入GORM初始化与连接配置
CodeGeeX通常不默认生成全局DB变量初始化代码,需显式要求以确保生成代码可直接集成到main.go或初始化模块中。
1、输入提示:“生成GORM v2 MySQL连接初始化代码,使用环境变量DB_USER、DB_PASSWORD、DB_NAME、DB_HOST、DB_PORT,启用日志和自动迁移”。
2、获取含gorm.Open、mysql.Open参数拼接、db.SingularTable(false)、db.AutoMigrate的完整初始化函数。
3、验证生成代码中是否包含Error检查与panic处理,若缺失,追加提示要求加入if err != nil { log.Fatal(err) }逻辑。










