Wie kann ich verschachtelte Strukturen mit SQLX effizient scannen?

DDD
Freigeben: 2024-11-23 08:55:11
Original
443 Leute haben es durchsucht

How Can I Efficiently Scan Nested Structs with sqlx?

Scannen in verschachtelte Strukturen mit SQLX

Verschachtelte Strukturen stellen bei der Verwendung von SQLX eine Herausforderung dar. Die Dokumentation bietet jedoch eine Lösung durch die Verwendung eingebetteter Strukturen.

Eingebettete Strukturen

Sqlx unterstützt eingebettete Strukturen, sodass Sie Feldern mithilfe der Prioritätsregeln von Go Werte zuweisen können für eingebettete Attribute und Methoden.

Code Beispiel

Betrachten Sie den folgenden Code, bei dem „Adresse“ keine eingebettete Struktur ist:

type Customer struct {
       Id      int     `json:"id" db:"id"`
       Name    string  `json:"name" db:"name"`
       Address Address `json:"adress"`
}

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

Dieser Code führt zu einem Fehler, wenn versucht wird, in eine Kundenstruktur zu scannen, weil die Adresse Das Feld ist nicht eingebettet und hat kein eigenes Datenbank-Tag.

Um dieses Problem zu beheben, betten Sie die Adresse ein Kunde:

type Customer struct {
   Id     int    `json:"id" db:"id"`
   Name   string `json:"name" db:"name"`
   Address
}
Nach dem Login kopieren

Durch das Einbetten der Adresse werden deren Felder (einschließlich Tags) zum Kunden hochgestuft, sodass SQLX sie aus dem Abfrageergebnis füllen kann.

JSON-Ausgabe

Das Einbetten der Adresse reduziert die JSON-Ausgabe, wie unten gezeigt:

{
    "id": 1,
    "name": "foo",
    "street": "bar",
    "city": "baz"
}
Nach dem Login kopieren

An Adresse Auf diese Weise können Sie die DB-Struktur Ihrem ursprünglichen Typ neu zuordnen oder das Abfrageergebnis in eine Zuordnung scannen.

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Strukturen mit SQLX effizient scannen?. 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