使用 GORM(Go 的 ORM 库)连接数据库,并实现增删改查操作 | 青训营

107 阅读2分钟

使用 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其实还有很多高级操作,例如添加约束、高级搜索等等,这里我知识讲了很基本的操作,其实高级的我也不是很会(手动狗头)。先学会了基本的,高级的再学吧。