GORM是 Go 语言操作关系型数据库的一大有力工具,在字节跳动中的应用十分广泛,考虑到它在字节的的广泛使用,出于学(chan)习(mei)的心理,我们小组在完成后端“抖声”项目时,也尝试把传统的SQL换成GORM来实践。
在实践过程中,我们参考了gorm.io/zh_CN/docs/… 里的教程,感到十分受教,在此向大家推荐同时表示感谢。
1. 安装和导入GORM: 我们是在GOLAND中安装的gorm,只需要导入
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite
即可。
2. 连接数据库: GORM 官方支持的数据库类型有:MySQL, PostgreSQL, SQLite, SQL Server 和 TiDB。我们小组以MySQL为例子进行了实践。
(可以先确认自己已经安装初始化好了数据库。个人原因(也有可能是我比较笨),我比较喜欢在GUI里面实现上述操作) 以教程中的这个代码为例子,修改好数据库的地址与端口,以及自己的密码,就可以用gorm连接上了
import ( "gorm.io/driver/mysql" "gorm.io/gorm" )
func main() { // 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情 dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) }
3. 实现增删改查操作: 这个就是我们这篇笔记的核心内容啦hhh,我在小组里负责的是上传存储相关的后端功能,所以这方面也接触地多一点。
-
创建数据: 使用
Create方法向数据库插入新的记录。通过创建一个与模型对应的实例并传递给Create方法,即可将数据插入数据库。 -
删除数据: 使用
Delete方法可以从数据库中删除记录。与更新类似,首先需要使用Model方法指定要删除的模型实例,然后使用Delete方法执行删除操作。 -
更新数据: 使用
Model和Update方法可以更新数据库中的记录。Model方法用于指定要更新的模型实例,然后使用Update方法指定要更新的字段及其新值。 -
查询数据: 使用
First和Find方法可以从数据库中检索数据。First用于检索单个记录,而Find用于检索多个记录。可以使用Where方法来添加条件进行筛选。
5. 总结: 其实我下个学期才开始学数据库的内容,不过这次遇上用得着的地方,就小小地学习了一下,同时把一开始的SQL语句尝试改用gorm来操作,算是掌握了一门比较新鲜的工具吧。