Maison > développement back-end > Golang > le corps du texte

Comment puis-je insérer des structures complexes, y compris des tableaux JSON, directement dans une base de données PostgreSQL ?

Linda Hamilton
Libérer: 2024-11-03 17:55:03
original
766 Les gens l'ont consulté

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

Puis-je insérer une structure directement dans une base de données PostgreSQL ?

Dans PostgreSQL, insérer directement des structures dans la base de données n'est pas simple si les champs de structure sont complexes ou incluent du JSON tableaux. Cependant, en utilisant des bibliothèques externes, vous pouvez obtenir des fonctionnalités d'insertion de manière plus efficace.

Solution utilisant la bibliothèque sqlx

La bibliothèque sqlx (github.com/jmoiron/sqlx) fournit une solution élégante à ce problème. Pour l'utiliser, marquez d'abord chaque champ de structure avec une balise db pour spécifier son nom de champ de base de données.

<code class="go">type ApplyLeave1 struct {
    LeaveId           int       `db:"leaveid"`
    EmpId             string    `db:"empid"`
    SupervisorEmpId   string    `db:"supervisorid"`
    // ... other fields
}</code>
Copier après la connexion

Ensuite, utilisez la fonction NamedExec dans sqlx pour insérer la structure entière dans la base de données.

<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>
Copier après la connexion

Insertion de tableaux JSON

Pour gérer les tableaux JSON dans les structures, vous pouvez utiliser le type de données tableau de PostgreSQL en marquant le champ avec 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>
Copier après la connexion

En suivant ces étapes, vous pouvez insérer de manière transparente des structures complexes, y compris des tableaux JSON, dans les bases de données PostgreSQL, simplifiant ainsi votre code et améliorant l'efficacité de l'insertion des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal