这是我参与「第五届青训营 」笔记创作活动的第16天
Gorm-gen学习|青训营笔记
GORM-gen简介
gorm-gen 是一个基于 Golang 的 ORM 框架 GORM 的代码生成器,它可以根据数据库表结构自动生成对应的 GORM 模型结构体代码,减少了手写 GORM 模型的工作量,提高了开发效率。
工作方式
gorm-gen 可以通过命令行的方式来生成模型代码,用户只需要指定数据库连接信息、生成代码的包名、模型结构体的命名规则等参数,即可快速生成模型代码。此外,gorm-gen 还支持生成模型结构体的注释、自定义模板、自定义模型字段类型映射等功能,使得生成的代码更加灵活和易于维护。
主要优势
gorm-gen 的优势在于可以根据数据库表结构生成高质量的 GORM 模型代码,不仅减少了手写代码的工作量,而且可以保证生成的代码符合 GORM 框架的最佳实践,提高了代码质量和开发效率。
常见函数介绍
1.ParseDSN(dsn string) (string, string, string, string, error)
:解析数据库连接 DSN,返回数据库类型、用户名、密码、主机地址和数据库名等参数。在使用 Gorm-gen 生成模型代码时,需要提供数据库连接信息,该函数可以将连接信息解析出来方便使用。
2.LoadSchema(db *gorm.DB, name string) (*Schema, error)
:加载指定数据库中的数据表结构信息,返回 Schema 对象。Schema 对象包含了数据库表的结构信息,如表名、字段名、类型、注释等,可以用于代码生成。
3.RenderToFile(schema *Schema, tplFile, filename string) error
:将模板文件 tplFile 渲染成代码文件,保存到 filename 中。在 Gorm-gen 中,模板文件用于生成模型结构体代码,该函数可以将模板文件渲染成 GORM 模型结构体代码并保存到指定文件中。
4.NewModelContext(pkg, tplFile string, funcs template.FuncMap) (*ModelContext, error)
:创建一个模型上下文对象 ModelContext,用于渲染模板文件。ModelContext 中包含了一些必要的参数,如代码包名、模板文件路径、自定义函数映射等,可以用于生成代码。