Maison > développement back-end > Golang > le corps du texte

golang obtient les résultats de la requête

WBOY
Libérer: 2023-05-13 09:34:07
original
875 Les gens l'ont consulté

Afin d'obtenir des résultats de requête, Golang propose différentes méthodes et outils. Dans cet article, nous explorerons les méthodes et techniques permettant d’obtenir des résultats de requête.

  1. Utilisation d'un pilote de base de données

L'utilisation d'un pilote de base de données est un moyen courant d'obtenir des résultats de requête. Golang prend en charge une variété de pilotes de bases de données, notamment MySQL, PostgreSQL et SQLite. Avant d'utiliser le pilote de base de données, vous devez installer la bibliothèque correspondante. Par exemple, pour utiliser le pilote MySQL, vous devez exécuter la commande suivante :

go get -u github.com/go-sql-driver/mysql
Copier après la connexion

Cela téléchargera et installera le pilote MySQL.

Ensuite, vous devez utiliser le package database/sql pour exécuter la requête et obtenir les résultats. Vous trouverez ci-dessous un exemple de programme qui utilise le pilote MySQL pour se connecter à une base de données MySQL et exécuter une simple requête SELECT :

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(hostname:port)/database")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    var id int
    var name string
    for rows.Next() {
        err = rows.Scan(&id, &name)
        if err != nil {
            panic(err.Error())
        }
        fmt.Println(id, name)
    }
}
Copier après la connexion

Dans le programme ci-dessus, nous utilisons la méthode sql.Open() pour nous connecter à la base de données MySQL. Dans la chaîne de connexion, nous spécifions le nom d'hôte, le port et le nom de la base de données du serveur de base de données. Ensuite, nous utilisons la méthode db.Query() pour exécuter la requête SELECT et les données de ligne dans le jeu de résultats de la requête. Pour chaque ligne, nous utilisons la méthode rows.Scan() pour lire les données de colonne dans la ligne.

  1. Utilisation du framework ORM

Le framework ORM (Object Relational Mapping) est un autre moyen populaire d'obtenir des résultats de requête dans Golang. Le framework ORM vous permet de mapper des tables de base de données en structures et champs dans Golang et fournit diverses méthodes pour effectuer des requêtes et manipuler la base de données. Certains des frameworks ORM populaires dans Golang incluent GORM, XORM, Beego ORM, etc.

Ce qui suit est un exemple de programme qui utilise le framework GORM pour obtenir des résultats de requête :

package main

import (
    "fmt"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

type User struct {
    ID   uint
    Name string
}

func main() {
    dsn := "user:password@tcp(hostname:port)/database"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    var users []User
    db.Find(&users)

    for _, user := range users {
        fmt.Println(user.ID, user.Name)
    }
}
Copier après la connexion

Dans le programme ci-dessus, nous utilisons GORM pour mapper la table User à la structure User dans Golang. Nous exécutons ensuite la requête SELECT à l'aide de la méthode db.Find() et enregistrons les résultats de la requête dans une tranche. Enfin, nous parcourons la tranche pour imprimer l'ID et le nom de chaque utilisateur.

  1. Utilisation du client HTTP

Si vous avez besoin d'obtenir les résultats d'une requête à partir d'un service Web, vous pouvez utiliser le client HTTP intégré de Golang. Les clients HTTP vous permettent d'envoyer des requêtes à des services Web avec des interfaces HTTP et d'obtenir les résultats des réponses.

Ce qui suit est un exemple de programme qui utilise un client HTTP pour obtenir les résultats d'une requête :

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

type User struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
}

func main() {
    url := "https://example.com/users"
    resp, err := http.Get(url)
    if err != nil {
        panic(err.Error())
    }
    defer resp.Body.Close()

    var users []User
    err = json.NewDecoder(resp.Body).Decode(&users)
    if err != nil {
        panic(err.Error())
    }

    for _, user := range users {
        fmt.Println(user.ID, user.Name)
    }
}
Copier après la connexion

Dans le programme ci-dessus, nous utilisons la méthode http.Get() pour demander une liste d'utilisateurs à un service Web. Nous décodons ensuite la réponse au format JSON à l'aide de la méthode json.NewDecoder() et la mappons dans la tranche User. Enfin, nous parcourons la tranche pour imprimer l'ID et le nom de chaque utilisateur.

Résumé

Ci-dessus sont trois façons courantes d'obtenir des résultats de requête dans Golang : en utilisant un pilote de base de données, en utilisant un framework ORM et en utilisant un client HTTP. Ces conseils peuvent vous aider à écrire du code efficace et flexible pour mieux traiter et obtenir les résultats des requêtes. Que vous obteniez les résultats d'une requête à partir d'une base de données relationnelle ou d'un service Web, ces conseils peuvent vous aider à obtenir facilement les résultats et à les traiter.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!