Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah saya boleh memasukkan struct kompleks, termasuk tatasusunan JSON, terus ke dalam pangkalan data PostgreSQL?

Bagaimanakah saya boleh memasukkan struct kompleks, termasuk tatasusunan JSON, terus ke dalam pangkalan data PostgreSQL?

Linda Hamilton
Lepaskan: 2024-11-03 17:55:03
asal
808 orang telah melayarinya

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

Bolehkah saya Memasukkan Struct Terus ke dalam DB PostgreSQL?

Dalam PostgreSQL, memasukkan struct ke dalam pangkalan data secara langsung tidak mudah jika medan struct kompleks atau termasuk JSON tatasusunan. Walau bagaimanapun, dengan menggunakan perpustakaan luaran, anda boleh mencapai fungsi sisipan dengan cara yang lebih cekap.

Penyelesaian Menggunakan Perpustakaan sqlx

Perpustakaan sqlx (github.com/jmoiron/sqlx) menyediakan penyelesaian yang elegan kepada masalah ini. Untuk menggunakannya, teg dahulu setiap medan struct dengan tag db untuk menentukan nama medan pangkalan datanya.

<code class="go">type ApplyLeave1 struct {
    LeaveId           int       `db:"leaveid"`
    EmpId             string    `db:"empid"`
    SupervisorEmpId   string    `db:"supervisorid"`
    // ... other fields
}</code>
Salin selepas log masuk

Kemudian, gunakan fungsi NamedExec dalam sqlx untuk memasukkan keseluruhan struct ke dalam pangkalan data.

<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>
Salin selepas log masuk

Memasukkan Tatasusunan JSON

Untuk mengendalikan tatasusunan JSON dalam struct, anda boleh menggunakan jenis data tatasusunan PostgreSQL dengan menandai medan dengan db:"array".

<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>
Salin selepas log masuk

Dengan mengikut langkah-langkah ini, anda boleh memasukkan struktur kompleks dengan lancar, termasuk tatasusunan JSON, ke dalam pangkalan data PostgreSQL, memudahkan kod anda dan meningkatkan kecekapan pemasukan data.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memasukkan struct kompleks, termasuk tatasusunan JSON, terus ke dalam pangkalan data PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan