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"` }
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 }
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" }
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!
if($res){
return json_encode(array('code'=>1,'msg'=>'成功'));
}else{
return json_encode(array('code'=>0,'msg'=>'失败'));
}
}
public function
}