为了账号安全,请及时绑定邮箱和手机立即绑定

扫描到结构字段,其中一些是指针

扫描到结构字段,其中一些是指针

Go
至尊宝的传说 2022-08-01 10:48:23
我正在编写一个GO应用程序,我试图找到一种简单的方法来扫描数据库中的行以构建字段。我使用pgx连接到postgresql数据库gqlgen 生成了这样的类:type Profile struct {    Name      string          `json:"name"`    JoinedAt  time.Time       `json:"joined_at"`    Bio       *string         `json:"bio"`}然后我得到了从数据库获取用户配置文件的函数:func GetUserProfile(ctx context.Context, profileDir string) (*model.Profile, error) {    sqlQuery := `select name,joined_at::timestamptz,bio from foo where profile_dir=$1`    var profile model.Profile    if err := Connection.QueryRow(ctx, sqlQuery, profileDir).        Scan(&profile.Name, &profile.JoinedAt, &profile.Bio); err != nil {        return nil, err    } else {        return &profile, nil    }}现在由于是一个指针,我需要创建一个不是指针的变量,扫描到它,然后将其地址分配给结构:Biovar profile model.Profilevar mybio string...Connection.QueryRow(...).Scan(...,&mybio)profile.Bio=&mybio有没有更简单的方法来将行扫描到可能具有指针的结构?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

如果 已经是指针,则无需在 Scan 调用中获取额外的指针:Bio


profile := Profile{

    Bio: new(string),

}


if err := Connection.QueryRow(ctx, sqlQuery, profileDir).

    Scan(&profile.Name, &profile.JoinedAt, profile.Bio); err != nil {

    return nil, err

} else {

    return &profile, nil

}


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信