Maison > développement back-end > Golang > Comment puis-je convertir efficacement les lignes d'une base de données en une tranche de cartes dans Go ?

Comment puis-je convertir efficacement les lignes d'une base de données en une tranche de cartes dans Go ?

Linda Hamilton
Libérer: 2024-12-07 06:23:15
original
815 Les gens l'ont consulté

How Can I Efficiently Convert Database Rows into a Slice of Maps in Go?

Création d'une carte à partir de lignes de base de données dans Go

Lorsque vous travaillez avec des requêtes de base de données, il devient nécessaire de récupérer les résultats et de les convertir en une structure de données pratique. Dans Go, le package base de données/sql standard fournit le type Rows pour représenter un ensemble de lignes renvoyées par une requête. Cependant, le défi se pose lorsque l'on souhaite créer une carte à partir de ces lignes, où les clés de la carte sont les noms de colonnes et les valeurs sont les valeurs de ligne correspondantes.

Pour résoudre ce problème, il est recommandé d'utiliser le package sqlx. . Voici un exemple montrant comment convertir des lignes en une tranche de cartes à l'aide de sqlx :

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)

type Place struct {
    ID      int
    Telcode int
}

func main() {
    db, err := sqlx.Open("mysql", "user:password@tcp(localhost:3306)/database")
    if err != nil {
        fmt.Printf(err)
        return
    }

    rows, err := db.Query("SELECT * FROM place ORDER BY telcode ASC")
    if err != nil {
        fmt.Printf(err)
        return
    }

    places := []map[string]interface{}{}
    for rows.Next() {
        rowMap := make(map[string]interface{})

        if err := rows.MapScan(rowMap); err != nil {
            fmt.Printf(err)
            return
        }

        places = append(places, rowMap)
    }

    fmt.Println(places)
}
Copier après la connexion

Dans cet exemple, la fonction sqlx.MapScan est utilisée pour analyser chaque ligne dans une carte. La tranche de cartes résultante est stockée dans la variable places et imprimée. Cette approche permet une représentation plus flexible des données de ligne, où les noms de colonnes deviennent les clés de la carte et les valeurs correspondantes sont accessibles via l'interface de la carte.

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