登录
首页 >  专题 >  Go 数据库与 ORM 实战
Go 数据库与 ORM 实战

Go 数据库与 ORM 实战

从 database/sql、GORM 到事务、CreateOrUpdate、sqlx 和 Mock 测试
实战 中级 约260分钟 10浏览
这个专题面向已经能写 Go Web 接口、准备把数据读写做稳定的开发者。它从 database/sql 的基本连接和驱动概念开始,再进入 GORM 的事务、写入模式、版本变化和错误处理,最后补 sqlx 与 Mock 测试,帮助读者建立一套更完整的 Go 数据访问实践。
学习建议:建议先看 database/sql 的基础知识,理解标准库和驱动边界;再看 GORM 的搭建、事务和 CreateOrUpdate;随后用 sqlx 补充轻量映射思路,最后通过 sqlmock 学会给数据库代码写单元测试。
12资源
6必学
4模块
4.3小时

学习路径

先理解标准库,再进入 ORM 和事务

Go语言实现操作MySQL的基础知识总结
文章 初级 必学

Go语言实现操作MySQL的基础知识总结

介绍 database/sql、MySQL 驱动、连接方式和基础增删改查,是 Go 数据库开发的入口。
先理解标准库和驱动的关系,后面使用 GORM 或 sqlx 时才知道底层发生了什么。
搭建Go语言的ORM框架Gorm的具体步骤(从Java到go)
文章 初级 必学

搭建Go语言的ORM框架Gorm的具体步骤(从Java到go)

从 Go 环境检查、GORM 依赖安装到 ORM 框架搭建,适合作为 GORM 上手材料。
在 database/sql 之后引入 GORM,帮助读者从手写 SQL 过渡到 ORM 开发方式。
详解如何利用GORM实现MySQL事务
文章 中级 必学

详解如何利用GORM实现MySQL事务

讲解 GORM 默认事务、禁用默认事务、显式事务和 MySQL 事务写法。
事务是业务写入的核心边界,适合放在 ORM 入门之后立刻学习。
基于GORM实现CreateOrUpdate方法详解
文章 中级 必学

基于GORM实现CreateOrUpdate方法详解

围绕创建或更新的业务场景,讲解如何设计 repository 接口和 GORM 写入逻辑。
CreateOrUpdate 是后台系统常见写入模式,能把事务和 ORM API 落到真实业务。
go第三方库sqlx操作MySQL及ORM原理
文章 中级 必学

go第三方库sqlx操作MySQL及ORM原理

介绍 sqlx 对 database/sql 的扩展、结构体映射、命名参数和 ORM 原理。
sqlx 介于标准库和 ORM 之间,能帮助读者理解轻量数据映射方案。
Go单元测试对GORM进行Mock测试
文章 高级 必学

Go单元测试对GORM进行Mock测试

使用 go-sqlmock 等工具对 ORM 数据库操作做 Mock 测试。
能测试的数据访问层才更适合长期维护,这篇作为学习路径的收束。

GORM 深入阅读

事务、版本、错误和回调

Go GORM 事务详细介绍
文章 中级 选学

Go GORM 事务详细介绍

补充 GORM 事务细节、默认事务性能取舍和显式事务写法。
和 MySQL 事务文章互相补充,适合需要更细读 GORM 事务的人。
GoGORM版本2.0新特性介绍
文章 中级 选学

GoGORM版本2.0新特性介绍

介绍 GORM 2.0 的版本变化和新特性,帮助读者理解旧教程和新版本差异。
站内 GORM 内容跨版本,专题需要提醒读者关注版本差异。
golang gorm错误处理事务以及日志用法示例
文章 高级 选学

golang gorm错误处理事务以及日志用法示例

讲解 GORM 错误处理、事务和日志等高级使用方式。
数据访问层上线后最怕错误不可见,这篇适合补充错误处理和日志边界。
golang gorm的Callbacks事务回滚对象操作示例
文章 高级 选学

golang gorm的Callbacks事务回滚对象操作示例

介绍 GORM Callback、对象生命周期和事务回滚相关示例。
适合希望理解 GORM 钩子和对象生命周期的进阶读者。

实战案例补充

查询、版本和跨数据库场景

golang gorm实现get请求查询案例测试
文章 中级 选学

golang gorm实现get请求查询案例测试

通过 Gin 和 GORM 的查询示例,展示接口请求到数据库查询的完整链路。
可以和 Go Web/Gin 专题互相衔接,让读者看到接口和数据层如何组合。
使用Gorm操作Oracle数据库踩坑记录
文章 高级 选学

使用Gorm操作Oracle数据库踩坑记录

记录使用 GORM 操作 Oracle 数据库时的驱动和兼容性问题。
虽然主线是 MySQL,但这篇能提醒读者 ORM 并不等于跨数据库无成本。

常见问题

Go 数据访问层的取舍

Go 项目应该选 database/sql、sqlx 还是 GORM?

如果 SQL 很清晰、团队希望完全掌控查询,database/sql 或 sqlx 更轻;如果业务实体复杂、需要关联、事务和统一写入模式,GORM 能减少样板代码。选择时要看团队经验、性能要求和可维护性。

GORM 默认事务要不要关闭?

不要只为了性能盲目关闭。默认事务能保护写入一致性;只有在明确知道写入场景、数据一致性要求和失败补偿方式时,才考虑禁用默认事务或改为显式事务。

相关专题

继续沿着相近方向学习

最新文章