ホームページ > バックエンド開発 > Golang > Go でデータベース行を構造体に効率的に変換するにはどうすればよいですか?

Go でデータベース行を構造体に効率的に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-17 12:48:26
オリジナル
370 人が閲覧しました

How to Efficiently Convert Database Rows to Structs in Go?

データベース取得のための行から構造体への変換

構造化データを使用したデータベース アクセス シナリオでは、データベースの行データを対応する構造体に変換することが望ましいことがよくあります。次の User 構造体について考えてみましょう:

type User struct {
    Name  string
    Id    int
    Score int
}
ログイン後にコピー

同じスキーマを持つデータベース テーブルを想定すると、データベース行を User 構造体に直接効率的に解析するにはどうすればよいでしょうか?

効率的な行から構造体への変換変換

Go データベース/SQL パッケージには、次のような役立つ例が用意されています。テスト:

func TestQuery(t *testing.T) {
    type row struct {
            age  int
            name string
    }
    rows, err := db.Query("SELECT|people|age,name|")
    got := []row{}
    for rows.Next() {
            var r row
            err = rows.Scan(&r.age, &r.name)
            got = append(got, r)
    }
}

func TestQueryRow(t *testing.T) {
    var row struct {
            age  int
            name string
    }
    err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
}
ログイン後にコピー

これらの原則を特定のケースに適用すると、次のように行を User 構造体に変換できます。

var row struct {
    age  int
    name string
}
err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
ログイン後にコピー

以上がGo でデータベース行を構造体に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート