Requêtes ad hoc dans le package SQL de Golang
Contrairement à l'impression initiale véhiculée par sa documentation, le package SQL de Golang est capable de faciliter la publicité Requêtes ponctuelles et exploratoires.
Le type sql.Rows possède une méthode Columns qui récupère les noms des colonnes de résultat. Ces informations permettent de déterminer le nombre de colonnes, même pour des requêtes peu familières.
De plus, la méthode Scan permet de récupérer les valeurs des colonnes sans connaissance préalable de leurs types. Il fournit des options pour enregistrer les valeurs sous leur forme brute (RawBytes) ou sous des types Go équivalents (interface{}).
Utilisant à la fois les méthodes Columns et Scan, il est possible de construire une approche flexible pour récupérer des données à partir de tables ou de requêtes inconnues. Par exemple, le code suivant utilise la syntaxe variadique (...) pour s'adapter dynamiquement au nombre de colonnes.
columnNames, err := rows.Columns() if err != nil { log.Fatalln(err) } columns := make([]interface{}, len(columnNames)) columnPointers := make([]interface{}, len(columnNames)) for i := 0; i < len(columnNames); i++ { columnPointers[i] = &columns[i] } if err := rows.Scan(columnPointers...); err != nil { log.Fatalln(err) }
Ce code capture toutes les valeurs de colonne décodées pour la ligne actuelle dans la tranche de colonnes. Une connaissance approfondie de la structure de la table ou des types de colonnes attendus peut faciliter une optimisation ultérieure de la logique.
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!