Heim > Backend-Entwicklung > Golang > Wie kann ich komplexe Strukturen, einschließlich JSON-Arrays, direkt in eine PostgreSQL-Datenbank einfügen?

Wie kann ich komplexe Strukturen, einschließlich JSON-Arrays, direkt in eine PostgreSQL-Datenbank einfügen?

Linda Hamilton
Freigeben: 2024-11-03 17:55:03
Original
825 Leute haben es durchsucht

How can I insert complex structs, including JSON arrays, directly into a PostgreSQL database?

Kann ich eine Struktur direkt in eine PostgreSQL-Datenbank einfügen?

In PostgreSQL ist das direkte Einfügen von Strukturen in die Datenbank nicht einfach, wenn die Strukturfelder komplex sind oder JSON enthalten Arrays. Durch die Verwendung externer Bibliotheken können Sie die Einfügefunktion jedoch effizienter erreichen.

Lösung mit der SQLX-Bibliothek

Die SQLX-Bibliothek (github.com/jmoiron/sqlx) bietet eine elegante Lösung zu diesem Problem. Um es zu verwenden, markieren Sie zunächst jedes Strukturfeld mit einem DB-Tag, um seinen Datenbankfeldnamen anzugeben.

<code class="go">type ApplyLeave1 struct {
    LeaveId           int       `db:"leaveid"`
    EmpId             string    `db:"empid"`
    SupervisorEmpId   string    `db:"supervisorid"`
    // ... other fields
}</code>
Nach dem Login kopieren

Verwenden Sie dann die NamedExec-Funktion in SQLX, um die gesamte Struktur in die Datenbank einzufügen.

<code class="go">import (
    "github.com/jmoiron/sqlx"
    "log"
)

query := `INSERT INTO TABLENAME(leaveid, empid, supervisorid, ...) VALUES(:leaveid, :empid, :supervisorid, ...)`

var leave1 ApplyLeave1

db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable")
if err != nil {
    log.Fatalln(err)
}

_, err = db.NamedExec(query, leave1)
if err != nil {
    log.Fatalln(err)
}</code>
Nach dem Login kopieren

JSON-Arrays einfügen

Um JSON-Arrays zu verarbeiten structs können Sie den Array-Datentyp von PostgreSQL verwenden, indem Sie das Feld mit db:"array" markieren.

<code class="go">type CertificateInfo struct {
    Id           int64  `db:"id"`
    FileName     string `db:"filename"`
    FileType     string `db:"filetype"`
    FileLocation string `db:"filelocation"`
}

type ApplyLeave1 struct {
    // ... other fields
    Certificates   []CertificateInfo  `db:"certificates,array"`
}</code>
Nach dem Login kopieren

Durch Befolgen dieser Schritte können Sie komplexe Strukturen, einschließlich JSON-Arrays, nahtlos in PostgreSQL-Datenbanken einfügen und so vereinfachen Ihren Code und verbessert die Effizienz beim Einfügen von Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich komplexe Strukturen, einschließlich JSON-Arrays, direkt in eine PostgreSQL-Datenbank einfügen?. 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