Heim > Backend-Entwicklung > Golang > Wie konvertiert man Datenbankzeilen in Go effizient in Strukturen?

Wie konvertiert man Datenbankzeilen in Go effizient in Strukturen?

Barbara Streisand
Freigeben: 2024-12-17 12:48:26
Original
370 Leute haben es durchsucht

How to Efficiently Convert Database Rows to Structs in Go?

Zeilen-zu-Struktur-Konvertierung für Datenbankabrufe

In Datenbankzugriffsszenarien mit strukturierten Daten ist es oft wünschenswert, Datenbankzeilendaten in eine entsprechende Struktur zu konvertieren. Betrachten Sie die folgende Benutzerstruktur:

type User struct {
    Name  string
    Id    int
    Score int
}
Nach dem Login kopieren

Angenommen, eine Datenbanktabelle mit demselben Schema, wie können wir eine Datenbankzeile effizient direkt in eine Benutzerstruktur analysieren?

Effiziente Zeilen-zu-Struktur Konvertierung

Das Go-Datenbank/SQL-Paket bietet hilfreiche Beispiele, wie das Folgende zeigt Tests:

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)
}
Nach dem Login kopieren

Wenn Sie diese Prinzipien auf Ihren speziellen Fall anwenden, können Sie eine Zeile wie folgt in eine Benutzerstruktur umwandeln:

var row struct {
    age  int
    name string
}
err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiert man Datenbankzeilen in Go effizient in Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage