Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar Baris Pangkalan Data dengan Cekap kepada Struktur dalam Go?

Bagaimana untuk Menukar Baris Pangkalan Data dengan Cekap kepada Struktur dalam Go?

Barbara Streisand
Lepaskan: 2024-12-17 12:48:26
asal
370 orang telah melayarinya

How to Efficiently Convert Database Rows to Structs in Go?

Penukaran Baris ke Struktur untuk Pengambilan Pangkalan Data

Dalam senario akses pangkalan data dengan data berstruktur, selalunya wajar untuk menukar data baris pangkalan data kepada struct yang sepadan. Pertimbangkan struct Pengguna berikut:

type User struct {
    Name  string
    Id    int
    Score int
}
Salin selepas log masuk

Dengan mengandaikan jadual pangkalan data dengan skema yang sama, bagaimanakah kita boleh menghuraikan baris pangkalan data secara cekap terus ke dalam struct Pengguna?

Efficient Row-to-Struct Penukaran

Pakej pangkalan data/sql Go menyediakan contoh yang berguna, seperti yang dibuktikan oleh yang berikut ujian:

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)
}
Salin selepas log masuk

Menggunakan prinsip ini pada kes khusus anda, anda boleh menukar satu baris kepada struct Pengguna seperti berikut:

var row struct {
    age  int
    name string
}
err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menukar Baris Pangkalan Data dengan Cekap kepada Struktur dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan