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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 16:11:12929parcourir

How to Efficiently Convert Database Rows to Maps in Go?

Comment convertir des lignes de base de données en une carte dans Go à l'aide de database/sql

Lorsque vous travaillez avec des bases de données, il est souvent nécessaire de récupérer des données et convertissez-le dans un format facilement manipulable dans vos applications Go. Une approche courante consiste à convertir les lignes de résultats en une tranche de cartes. Cependant, la fonction base de données/sql Rows.Scan nécessite un nombre spécifique de paramètres pour correspondre aux colonnes renvoyées par la requête.

Création d'une carte à partir de lignes à l'aide de sqlx

Bien que le package database/sql ne fournisse pas de prise en charge directe pour la conversion de lignes en tranches de cartes, vous pouvez utiliser le package sqlx pour simplifier le processus. process :

import "github.com/jmoiron/sqlx"

db := sqlx.Open("postgres", "user=postgres password=mypassword host=localhost port=5432 dbname=mydb")

places := []Place{}
err := db.Select(&places, "SELECT * FROM place ORDER BY telcode ASC")
if err != nil {
    fmt.Printf(err)
    return
}

Dans cet exemple, nous utilisons sqlx pour interroger la table place et stocker les résultats dans une tranche de structures Place. Vous pouvez remplacer []Place{} par []map[string]interface{} pour créer une tranche de cartes à la place.

Remarque : Il est recommandé d'utiliser des structures autant que possible, car elles assurent la sécurité des types et éliminent le besoin d’assertions de type, qui peuvent être sujettes aux erreurs. Cependant, si vous ne connaissez pas la structure de votre base de données ou si vous avez besoin de travailler avec des données dynamiques, vous pouvez utiliser une tranche de cartes pour plus de flexibilité.

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!

Déclaration:
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