当前位置:首页 >专题 >Go 数据库与 ORM 实战

Go 数据库与 ORM 实战
Go 数据库与 ORM

Go 数据库与 ORM 实战

从 database/sql、GORM 到事务、CreateOrUpdate、sqlx 和 Mock 测试
这个专题面向已经能写 Go Web 接口、准备把数据读写做稳定的开发者。它从 database/sql 的基本连接和驱动概念开始,再进入 GORM 的事务、写入模式、版本变化和错误处理,最后补 sqlx 与 Mock 测试,帮助读者建立一套更完整的 Go 数据访问实践。

学习路径

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

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

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

介绍 database/sql、MySQL 驱动、连接方式和基础增删改查,是 Go 数据库开发的入口。
搭建Go语言的ORM框架Gorm的具体步骤(从Java到go)
文章

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

从 Go 环境检查、GORM 依赖安装到 ORM 框架搭建,适合作为 GORM 上手材料。
详解如何利用GORM实现MySQL事务
文章

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

讲解 GORM 默认事务、禁用默认事务、显式事务和 MySQL 事务写法。
基于GORM实现CreateOrUpdate方法详解
文章

基于GORM实现CreateOrUpdate方法详解

围绕创建或更新的业务场景,讲解如何设计 repository 接口和 GORM 写入逻辑。
go第三方库sqlx操作MySQL及ORM原理
文章

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

介绍 sqlx 对 database/sql 的扩展、结构体映射、命名参数和 ORM 原理。
Go单元测试对GORM进行Mock测试
文章

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

使用 go-sqlmock 等工具对 ORM 数据库操作做 Mock 测试。

GORM 深入阅读

事务、版本、错误和回调

Go GORM 事务详细介绍
文章

Go GORM 事务详细介绍

补充 GORM 事务细节、默认事务性能取舍和显式事务写法。
GoGORM版本2.0新特性介绍
文章

GoGORM版本2.0新特性介绍

介绍 GORM 2.0 的版本变化和新特性,帮助读者理解旧教程和新版本差异。
golang gorm错误处理事务以及日志用法示例
文章

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

讲解 GORM 错误处理、事务和日志等高级使用方式。
golang gorm的Callbacks事务回滚对象操作示例
文章

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

介绍 GORM Callback、对象生命周期和事务回滚相关示例。

实战案例补充

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

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

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

通过 Gin 和 GORM 的查询示例,展示接口请求到数据库查询的完整链路。
使用Gorm操作Oracle数据库踩坑记录
文章

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

记录使用 GORM 操作 Oracle 数据库时的驱动和兼容性问题。

常见问题

Go 数据访问层的取舍

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

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

GORM 默认事务要不要关闭?

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

database/sql 的连接池需要手动管理吗?

sql.DB 本身就是并发安全的连接池句柄,应用仍应根据数据库容量设置最大打开连接、最大空闲连接和连接生命周期,并在请求链路中传递 context 做超时取消。

ORM 能完全替代 SQL 吗?

不能简单替代。ORM 适合实体 CRUD、关联和常见事务,复杂报表、性能敏感查询和数据库特性仍应保留清晰的 SQL,并用执行计划和测试验证结果。

微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码