Repolode
go-gorm

go-gorm/gorm

Go 语言的全功能 ORM 库,可将结构体映射到数据库表,支持关联、钩子、事务和自动迁移。

Star
39,978
Fork
4,220
未关闭 Issue
554
最近提交
上个月

这是什么?

GORM 是一个 Go 语言的对象关系映射(ORM)库。开发者可以用 Go 结构体定义数据模型,直接完成增删改查,不必为每条查询手写 SQL;需要时也可以使用 SQL 构造器或原生 SQL。

它支持常见的关联关系,包括一对一、一对多、多对一、多对多、多态关联和单表继承,并通过 Preload 和 Joins 实现预加载。此外还提供带保存点的事务、批量插入、Upsert、行锁、创建/更新/删除/查询前后的钩子,以及自动迁移表结构的功能。

项目通过插件 API 进行扩展,已有的插件包括支持多数据库和读写分离的 Database Resolver,以及 Prometheus 集成。官方文档位于 gorm.io。

核心功能

  • 01支持一对一、一对多、多对一、多对多及多态关联。
  • 02通过 Preload 和 Joins 进行预加载。
  • 03支持嵌套事务和保存点。
  • 04提供批量插入、Upsert、行锁和分批查询。
  • 05支持创建、保存、更新、删除、查询等钩子。
  • 06提供自动迁移和插件 API。

适用场景

  • 为基于关系型数据库的 Go Web 服务快速实现数据访问层,减少手写 SQL。
  • 通过 Database Resolver 插件实现多数据库或读写分离。
  • 在开发阶段使用自动迁移管理表结构变更。

快速上手

  1. 1

    访问 gorm.io 查看 GORM 指南以进行安装和使用

标签

常见问题

gorm 是什么?
Go 语言的全功能 ORM 库,可将结构体映射到数据库表,支持关联、钩子、事务和自动迁移。 GORM 是一个 Go 语言的对象关系映射(ORM)库。开发者可以用 Go 结构体定义数据模型,直接完成增删改查,不必为每条查询手写 SQL;需要时也可以使用 SQL 构造器或原生 SQL。
gorm 可以免费使用吗?用的什么许可证?
gorm 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
gorm 还在维护吗?
半年内有更新。gorm 最近一次提交是在 2026年9月14日。
gorm 适合用来做什么?
为基于关系型数据库的 Go Web 服务快速实现数据访问层,减少手写 SQL。 通过 Database Resolver 插件实现多数据库或读写分离。 在开发阶段使用自动迁移管理表结构变更。
gorm 怎么安装和运行?
访问 gorm.io 查看 GORM 指南以进行安装和使用
在哪里获取 gorm?
源代码和安装说明在 GitHub 上:https://github.com/go-gorm/gorm

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目