Gorm基本使用 Gorm 的约定(默认) Gorm 使用名为 ID 的字段 作为主键 使用结构体的 蛇形负数作为表名 字段名的蛇形作为列名 使用 CreatedAt、UpdatedAt 字段作为创建更新时间
查询数据 First 的使用踩坑 使用首字母时,需要注意查询不到数据会返回Err Record Not Found。 使用查找查询多条数据,查询不到数据不会返回错误。 使用结构体作为查询条件 当使用结构作为条件查询时,GORM只会查询非零值字段。这意味着如果您的字段值为0、“、false或其他零值,该字段不会被用于构建查询条件,使用Map 来构建查询条件。
删除数据 GORM 提供了 gorm.DeletedAt 用于帮助用户实现软删 拥有软删除能力的 Model 调用 Delete 时,记录不会被从数据库中真正删除。但 GORM 会将 DeletedAt 置为当前时间并且你不能再通过正常的查询方法找到该记录。 使用 Unscoped 可以查询到被软删的数据
对于写操作 (创建、更新、删除) ,为了确保数据的完整性,GORM 会将它们封装在事务内运行。但这会降低性能,你可以使用SkipDefaultTransaction 关闭默认事务。 使用 PrepareStmt 缓存预编译语句可以提高后续调用的速度,本机测试提高大约 35 %左右。