Heim > Backend-Entwicklung > Golang > Wie scanne ich verschachtelte Strukturen mit SQLX korrekt in Go-Strukturen?

Wie scanne ich verschachtelte Strukturen mit SQLX korrekt in Go-Strukturen?

Barbara Streisand
Freigeben: 2024-11-25 12:13:12
Original
743 Leute haben es durchsucht

How to Correctly Scan Nested Structs into Go Structs Using SQLX?

Scannen verschachtelter Strukturen mit SQLX

Beim Versuch, Abfrageergebnisse mit SQLX in verschachtelte Strukturen zu scannen, ist es wichtig, den richtigen Ansatz zu verstehen.

Im bereitgestellten Beispiel tritt ein Typkonfliktfehler auf, weil die Adressstruktur nicht korrekt in die Kundenstruktur eingebettet ist. Um dieses Problem zu beheben, ist eine Einbettung erforderlich.

Eingebettete Strukturen

Eingebettete Strukturen ermöglichen den Zugriff auf die eingebetteten Felder, ohne dass ihnen der Name des eingebetteten Typs vorangestellt werden muss. Dies vereinfacht den Feldzugriff und stellt sicher, dass Felder aus der eingebetteten Struktur beim Scannen von Abfrageergebnissen korrekt ausgefüllt werden.

type Customer struct {
    Id        int
    Name      string
    Address   // Embedded struct without tags
}

type Address struct {
    Street string  `db:"street"`
    City   string  `db:"city"`
}
Nach dem Login kopieren

Aktualisierte Abfrage

Durch die Einbettung der Adressstruktur weist SQLX automatisch Werte aus zu Abfrageergebnis in die entsprechenden Felder basierend auf ihren Datenbank-Tags.

customer := models.Customer{}
err := db.Get(&customer, `select * from users where>
Nach dem Login kopieren

JSON Marshalling

Beachten Sie das Durch das Einbetten der Adressstruktur wird die JSON-Ausgabe reduziert und das verschachtelte Adressobjekt entfernt. Um die verschachtelte Struktur beizubehalten, sollten Sie eine Typkonvertierung in Betracht ziehen, um die Felder wieder der ursprünglichen Struktur zuzuordnen.

Das obige ist der detaillierte Inhalt vonWie scanne ich verschachtelte Strukturen mit SQLX korrekt in Go-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