GORM 简记

56 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

GORM是一个基于Golang的ORM库,使得对关系型数据库的访问变得非常简单。在使用GORM时,我们需要了解一些基本的概念和操作。

概念

主键字段约定:在GORM中,默认使用名为ID的字段作为主键。如果想使用其他字段作为主键,可以在结构体中定义一个字段并添加gorm:"primaryKey"的tag。

表名约定:在GORM中,默认情况下会将结构体名转换为复数形式并将其用作表名。如果要使用自定义表名,可以在结构体中定义一个字段并添加gorm:"tableName:custom_table_name"的tag。

列名约定:在GORM中,默认情况下会将结构体字段名转换为蛇形格式并将其用作列名。如果要使用自定义列名,可以在结构体字段上添加gorm:"column:custom_column_name"的tag。

DSN:Data Source Name,是连接到数据库的标准字符串格式,其中包含数据库的地址、用户名、密码和数据库名称等信息。在GORM中,你可以使用DSN连接到不同的数据库。

操作

创建:可以使用Create方法将一个结构体插入到数据库中。

db.Create(&user)

删除:可以使用Delete方法删除与结构体匹配的记录。

db.Delete(&user)

查找:可以使用Find方法查找与结构体匹配的记录。还可以使用Where方法进行条件查询。

db.Find(&users)
db.Where("age > ?", 18).Find(&users)

特别注意查询操作需要还有First方法,于Find不同的是,当数据库中查不出所谓的第一个记录时,First会返回一个错误,而Find不会。 这在很多时候是需要主义的,如果默认了查不出结果会报错的话,那么当十一哦给你Find时可能会碰到经典的十亿美元的错误(空指针问题)。

除了以上操作,GORM还提供了很多多强大的功能,如使用Clause扩展功能、使用Model方法指定查询的字段等。