Maison développement back-end Golang Comment mapper db.queryrow.scan Results in map in go lingway?

Comment mapper db.queryrow.scan Results in map in go lingway?

Apr 02, 2025 am 11:21 AM
go语言 sql语句

Comment mapper db.queryrow.scan Results in map in go lingngle?

GO Language Database Operation: Carely Map db.QueryRow.Scan Résultats à map

Dans les opérations de base de données GO, il est courant de cartographier les résultats de la requête aux structures personnalisées. Cependant, il est parfois nécessaire de cartographier les résultats sur map . Cet article expliquera en détail comment scanner les résultats de db.QueryRow.Scan dans map[string]interface{} et résoudre les erreurs communes.

Il est faux d'utiliser directement map[string]interface{} comme paramètre Scan , car Scan nécessite un pointeur pour écrire des données. L'extrait de code suivant montre des erreurs courantes:

 res: = map [string] interface {} {"id": nil, "name": nil, "mot de passe": nil, "add_time": nil}
// ... scan (res ["id"], res ["name"], ...) // erreur!
Copier après la connexion

res["id"] , etc. Renvoie une valeur de interface{} , pas un pointeur. Scan ne peut pas écrire de données sur ces valeurs.

La bonne façon de le faire est d'allouer l'espace mémoire pour chaque valeur map et d'utiliser les pointeurs:

 res: = map [string] interface {} {"id": new (int), "name": new (string), "mot de passe": new (string), "add_time": new (int64)}
Copier après la connexion

Ici, utilisez la fonction new() pour allouer la mémoire aux types int , string et int64 respectivement, et obtenez leurs pointeurs. Scan peut écrire des données sur l'adresse mémoire pointée par ces pointeurs.

La fonction selectOne améliorée est la suivante:

 func selectOne (id int) {
    res: = map [string] interface {} {"id": new (int), "name": new (string), "mot de passe": new (string), "add_time": new (int64)}
    fmt.println ("Initial Map:", res) // Ajouter des instructions d'impression pour faciliter le débogage de SQL: = "SELECT ID, nom, mot de passe, add_time à partir du test où id =?"
    err: = db.queryRow (sql, id) .scan (res ["id"], res ["name"], res ["mot de passe"], res ["add_time"])

    Si err! = Nil {
        fmt.println ("Échec de l'obtention des données:", err.Error ())
    } autre {
        fmt.println ("Map de résultat:", res) // Ajouter des instructions d'impression pour faciliter le débogage // des données d'accès dans la carte idval: = * res ["id"]. (* int)
        nameVal: = * res ["name"]. (* String)
        // ...
    }
}
Copier après la connexion

Notez que l'accès aux données dans map nécessite des assertions de type, telles que *res["id"].(*int) . Cela garantit que interface{} est convertie correctement en type int . Nous avons également ajouté des déclarations d'impression pour faciliter le débogage et la compréhension du flux de données. L'instruction SQL a également été ajustée pour spécifier les noms de colonne à interroger pour éviter les problèmes de décalage du nom de colonne potentiel. N'oubliez pas que le nom de clé de map doit être cohérent avec le nom de la colonne de la base de données.

Avec cette approche, les résultats de db.QueryRow.Scan peuvent être mappés pour map efficacement et éviter les erreurs de pointeur courantes. N'oubliez pas d'allouer de toujours la mémoire aux valeurs de map et d'utiliser des pointeurs.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1667
14
Tutoriel PHP
1273
29
Tutoriel C#
1255
24
Comment créer des tables avec SQL Server à l'aide de l'instruction SQL Comment créer des tables avec SQL Server à l'aide de l'instruction SQL Apr 09, 2025 pm 03:48 PM

Comment créer des tables à l'aide de instructions SQL dans SQL Server: Ouvrez SQL Server Management Studio et connectez-vous au serveur de base de données. Sélectionnez la base de données pour créer le tableau. Entrez l'instruction Créer la table pour spécifier le nom de la table, le nom de la colonne, le type de données et les contraintes. Cliquez sur le bouton Exécuter pour créer le tableau.

Comment rédiger un tutoriel sur la façon de connecter trois tables dans les instructions SQL Comment rédiger un tutoriel sur la façon de connecter trois tables dans les instructions SQL Apr 09, 2025 pm 02:03 PM

Cet article présente un tutoriel détaillé sur la jonction de trois tables à l'aide de instructions SQL, guidant les lecteurs pour apprendre à corréler efficacement les données dans différentes tables. Avec des exemples et des explications de syntaxe détaillées, cet article vous aidera à maîtriser les techniques de jonction des tables en SQL, afin que vous puissiez récupérer efficacement les informations associées de la base de données.

Comment juger l'injection SQL Comment juger l'injection SQL Apr 09, 2025 pm 04:18 PM

Les méthodes pour juger l'injection de SQL incluent: la détection des entrées suspectes, la visualisation des instructions SQL originales, l'utilisation d'outils de détection, la visualisation des journaux de la base de données et l'exécution des tests de pénétration. Une fois l'injection détectée, prenez des mesures pour corriger les vulnérabilités, vérifier les correctifs, surveiller régulièrement et améliorer la sensibilisation des développeurs.

Comment créer une base de données MySQL à l'aide de phpmyadmin Comment créer une base de données MySQL à l'aide de phpmyadmin Apr 10, 2025 pm 10:48 PM

PHPMyAdmin peut être utilisé pour créer des bases de données dans des projets PHP. Les étapes spécifiques sont les suivantes: Connectez-vous à PhpMyAdmin et cliquez sur le bouton "Nouveau". Entrez le nom de la base de données que vous souhaitez créer et notez qu'il est conforme aux règles de dénomination MySQL. Définissez des ensembles de caractères, tels que UTF-8, pour éviter les problèmes brouillés.

Comment vérifier les instructions SQL Comment vérifier les instructions SQL Apr 09, 2025 pm 04:36 PM

Les méthodes pour vérifier les instructions SQL sont: Vérification de la syntaxe: utilisez l'éditeur SQL ou IDE. Vérification logique: vérifiez le nom de la table, le nom de la colonne, l'état et le type de données. Vérification des performances: utilisez Expliquez ou analysez pour vérifier les index et optimiser les requêtes. Autres vérifications: Vérifier les variables, les autorisations et les requêtes de test.

Comment utiliser l'insert de l'instruction SQL Comment utiliser l'insert de l'instruction SQL Apr 09, 2025 pm 06:15 PM

L'instruction INSERT SQL est utilisée pour insérer des données dans une table. Les étapes incluent: Spécifiez la table cible pour répertorier les colonnes à insérer. Spécifiez la valeur à insérer (l'ordre des valeurs doit correspondre au nom de la colonne)

Comment ajouter des colonnes dans PostgreSQL? Comment ajouter des colonnes dans PostgreSQL? Apr 09, 2025 pm 12:36 PM

PostgreSQL La méthode pour ajouter des colonnes consiste à utiliser la commande alter table et à considérer les détails suivants: Type de données: Sélectionnez le type qui convient à la nouvelle colonne pour stocker des données, telles que INT ou VARCHAR. Par défaut: Spécifiez la valeur par défaut de la nouvelle colonne via le mot-clé par défaut, en évitant la valeur de NULL. CONTRAINTES: Ajoutez des contraintes non nulles, uniques ou de vérification au besoin. Opérations simultanées: utilisez des transactions ou d'autres mécanismes de contrôle de concurrence pour gérer les conflits de verrouillage lors de l'ajout de colonnes.

Guide de l'utilisation globale de phpmyadmin Guide de l'utilisation globale de phpmyadmin Apr 10, 2025 pm 10:42 PM

PhPMyAdmin n'est pas seulement un outil de gestion de la base de données, il peut vous donner une compréhension approfondie de MySQL et améliorer les compétences en programmation. Les fonctions principales incluent l'exécution de la requête CRUD et SQL, et il est crucial de comprendre les principes des instructions SQL. Les conseils avancés incluent l'exportation / l'importation de données et la gestion des autorisations, nécessitant une compréhension approfondie de la sécurité. Les problèmes potentiels incluent l'injection SQL et la solution est des requêtes paramétrées et des sauvegardes. L'optimisation des performances implique l'optimisation des instructions SQL et l'utilisation de l'index. Les meilleures pratiques mettent l'accent sur les spécifications du code, les pratiques de sécurité et les sauvegardes régulières.

See all articles