阅读指南
本文记录 GORM 在 Go 后端项目里的常用写法。
GORM 是 Go 里常用的 ORM 库。ORM 可以把数据库表和 Go 结构体对应起来,用 Go 代码完成常见的增删改查。
阅读前置:
MySQL 基础可参考本站 MySQL 笔记。
一、使用写法
本文档以 GORM 官方文档中的稳定写法为主,默认使用传统 API:
GORM 也提供了泛型 API:
泛型 API 类型更明确,但概念更多。本文档先使用传统 API,最后简单说明泛型 API 的位置。
二、阅读顺序
按这个顺序阅读:
- 快速入门:认识 GORM,安装依赖,连接 MySQL。
- 模型和迁移:用结构体描述表结构,并用
AutoMigrate创建表。 - 增删改查:常用 CRUD。
- 查询进阶:条件、排序、分页、统计和错误处理。
- 关联关系:理解一对多、多对多和预加载。
- 工程整合:学习连接池、配置拆分、Gin 中如何使用 GORM。
三、示例约定
示例数据库:
示例会围绕这些表:
Go 字段使用大驼峰,数据库字段默认会转成下划线:
四、不要把 GORM 当成不用学 SQL
GORM 能减少重复 SQL,但不是替代 SQL 基础。
仍然需要关注:
- 哪些字段应该建索引
- 查询条件会不会走索引
- 事务什么时候需要使用
Preload会产生额外查询- 更新和删除时必须确认条件
GORM 写得好,前提是知道它大概会生成什么 SQL。
五、官方资料
- GORM 官方文档:https://gorm.io/docs/
- GORM MySQL 驱动:https://gorm.io/docs/connecting_to_the_database.html
- GORM 模型:https://gorm.io/docs/models.html
- GORM CRUD:https://gorm.io/docs/create.html

