1. ホーム
  2. sql

[解決済み] データベースの行を構造体に変換する方法

2023-01-26 17:31:46

質問

構造体があるとします。

type User struct {
    Name  string
    Id    int
    Score int
}

そして、同じスキーマを持つデータベーステーブル。データベースの行を構造体にパースする最も簡単な方法は何ですか?下に答えを追加しましたが、それがベストな方法かどうかはわかりません。

どのように解決するのですか?

構造体の値をすべて手動で Scan 関数の中ですべての構造体の値を手動で割り当てます。

func getUser(name string) (*User, error) {
    var u User
    // this calls sql.Open, etc.
    db := getConnection()
    // note the below syntax only works for postgres
    err := db.QueryRow("SELECT * FROM users WHERE name = $1", name).Scan(&u.Id, &u.Name, &u.Score)
    if err != nil {
        return &User{}, err
    } else {
        return &u, nil
    }
}