这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天。
Gorm是一个操作数据库的orm框架,有着非常丰富的开源拓展。
Gorm有着一些特殊的约定:
1 Gorm使用名为ID的字段作为主键。
2 GOrm使用结构体的蛇形复数作为表名。
3 字段名的蛇形作为列名。
4 在gorm.Model中,包含CreatedAt、UpdatedAt 字段作为创建和更新时间。
接下来是gorm的一些基本使用.
上面是定义gorm的连接池,mysql.Config是处理连接数据库的信息,这里以mysql为例。gorm.Config是配置gorm,由于gorm是默认复数表,所以如果需要单数表则需要通过 SingularTable: true,改成单数形式。除此之外,还可以配置连接池的最大连接数量、复用时间等。
接下来是gorm的一些简单使用,注意:gorm是支持链式操作的。
生成表操作:
首先定义一个User结构体,作为表的映射。通过globalDb.Migrator().CreateTable(&User{}) //为结构体实例User创建一个表user。
插入操作:
使用 globalDb.Migrator().HasTable()判断表是否存在,如果表存在则插入值,不存在则创建表再插入。
更新操作:
最常用的更新操作有update和updates等。update一般用于更新单列,当表中有字段为空时会引起错误;updates用于更新多列,也可以搭配选定字段或者忽略字段更新。
删除操作:
删除分为永久删除(即硬删除)和软删除,gorm默认:当使用gorm.deletdat字段(这个字段包含在gorm.Model中),会自动获得软删除的功能。即当调用Delete时,记录并不会从数据库中真正的删除,若要永久删除某个数据,可以添加Unscoped。
查询操作:
sql构建器:
会话模式: