Maison  >  Article  >  développement back-end  >  Le package SQL de Golang peut-il gérer les requêtes ad hoc ?

Le package SQL de Golang peut-il gérer les requêtes ad hoc ?

DDD
DDDoriginal
2024-11-02 08:53:02932parcourir

Can Golang's SQL Package Handle Ad Hoc Queries?

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!

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