使用 GORM(Go 的 ORM 库)连接数据库,并实现增删改查操作
GORM 是 Go 语言中非常受欢迎的 ORM(Object-Relational Mapping)库,它简化了与数据库的交互,让开发者能够更轻松地进行数据库操作。 Gorm的优点:其实就是简单不用写原生的数据库语言,然后还能支持多种数据库不是单纯的支持MySQL,而且还支持好多高级操作(当然我现在还不会呢),还能自动迁移(就是将代码中创建的结构映射到数据库的表中)。 做web开发的时候做的比较多的操作我目前来看就是数据库的crud操作。用go链接数据库的时候我们用到了一个比较常见的库就是GORM。用了几次感觉挺好用的,接下来给大家讲讲GORM的基本操作。
1、GORM的下载及初始化
用下面的命令就行了。go get -u gorm.io/gorm。如果速度慢下载不下来就要考虑换代理的问题了,我看下载网上用七牛云的CDN比较多。
更换代理用下面的代码:
# 启用 Go Modules 功能
go env -w GO111MODULE=on
# 七牛 CDN
go env -w GOPROXY=https://goproxy.cn,direct
2、数据库的表单建立
数据库需要表单,表示各个结构的关系,我们只用定义一个结构,然后映射到数据库就行,不用麻烦的数据库原生语言了。gorm.Model这是已经定义了一部分东西,比如ID、创建时间、更新时间等等,这样就为我们节省了时间。
type User struct {
gorm.Model
Name string
Email string
}
3、数据库的链接
就这么简单一段代码就行了db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}),当然我们也要将自己定义的结构映射到数据库中db.AutoMigrate(&models.User{})。这里面的models.User是我们定义的User结构。
4、数据库的增删减改
假如我们已经将表单创建好了,然后的操作就是在数据库里面添加数据、读取数据、更新数据、删除数据的操作了。
- 增加
user := models.User{Name: name, Email: email} result := db.Create(&user) - 读取
var user models.User result := db.First(&user, id) - 更新
user.Name = name user.Email = email result = db.Save(&user) - 删除
result := db.First(&user, id) result = db.Delete(&user)
最后
gorm其实还有很多高级操作,例如添加约束、高级搜索等等,这里我知识讲了很基本的操作,其实高级的我也不是很会(手动狗头)。先学会了基本的,高级的再学吧。