gorm

前言

简单来说,它是一个开发者工具,能让你用操作 Go 结构体(Struct)和对象的方式来与关系型数据库(如 MySQL、PostgreSQL、SQLite 等)进行交互,而无需编写复杂的 SQL 语句。

核心思想:将数据库中的“表”映射为 Go 程序中的“结构体”,将表中的“行”映射为结构体的“实例”,将表中的“列”映射为结构体的“字段”。

安装依赖

1
go get -u gorm.io/gorm

假如是操作mysql,那么下一步是:

1
go get -u gorm.io/driver/mysql

tips:gorm不是全局安装,而是项目级别的,需要在项目已有**go.mod**文件时才能给项目安装

这里不得不的提一嘴,go的项目依赖是全局安装的,但不需要担心多个项目依赖冲突的问题,因为在全局缓存目录中,go允许一个库的多个版本同时存在。当项目编译时,go编译器只会根据go.mod去编译对应版本的库

。。。懒得写了,大体流程和python那些都差不多,只是具有了一些gozero的特性而已。

查询

就像用sql语句查询特定的字段值
image-20260622191011309

也可以执行原生SQL语句:

Exec(sql) 执行一个语句,返回受影响的行数,用于 删除数据 或者修改数据

Raw(sql) Scan() 用于查询数

如:

1
2
3
4
5
6
7
8
9
10
//使用原生sql Exec修改article表中的一条数据
result := l.svcCtx.DB.Exec("UPDATE article SET title = ? WHERE id = ?", "原生sql修改数据", 1)

//Raw查询article表中id=2的数据
article := []gorm.Article{}
l.svcCtx.DB.Raw("SELECT * FROM article WHERE id = ?", 2).Scan(&article)

//原生sql统计article表的数量
var count int64
result = l.svcCtx.DB.Raw("SELECT COUNT(*) FROM article").Scan(&count)
Icon
致谢名单
本作品由 Hafsun 于 2026-06-22 14:34:22 发布
作品地址:gorm
除特别声明外,本站作品均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自 欢迎回家
Logo
上一篇redis初学下一篇gozero初学