GORM 创建与查询
# GORM 创建与查询
创建前完成字段校验,查询时明确条件、排序和分页。数据库调用应使用请求 Context。
user := User{Email: "user@example.com"}
if err := db.WithContext(ctx).Create(&user).Error; err != nil {
return fmt.Errorf("create user: %w", err)
}
var result User
err := db.WithContext(ctx).
Where("email = ?", user.Email).
First(&result).Error
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
占位参数由驱动绑定,不要拼接用户输入生成 SQL。使用 errors.Is(err, gorm.ErrRecordNotFound) 判断未找到。列表查询必须设置上限,并通过日志或监控发现 N+1 查询和缺失索引。