Maison >développement back-end >Golang >Comment interroger MySQL dans Golang

Comment interroger MySQL dans Golang

王林
王林original
2023-05-14 19:46:061519parcourir

Avec le développement d'Internet, le traitement et la gestion des données sont devenus un élément essentiel de diverses industries. Un système de gestion de base de données (SGBD) est un système logiciel permettant de gérer et d'accéder aux bases de données que de nombreuses entreprises utilisent dans leurs opérations et leur gestion quotidiennes. MySQL est l'un des systèmes de gestion de bases de données relationnelles couramment utilisés. Pendant le développement, nous devrons peut-être utiliser un langage de programmation pour nous connecter et faire fonctionner MySQL. Cet article explique comment utiliser le langage Go pour interroger la base de données MySQL.

1. Installez le pilote MySQL

Le site officiel de Go Language fournit le pilote de base de données MySQL et prend en charge de nombreuses versions différentes de MySQL. L'installation du pilote MySQL nécessite que le système dispose d'un environnement de développement de langage Go et d'une base de données MySQL.

  1. Ouvrez la ligne de commande et utilisez la commande suivante pour installer le pilote MySQL :

go get github.com/go-sql-driver/mysql

Le package go-sql-driver fournit des fonctions de base pour les requêtes MySQL. Vous pouvez maintenant l'utiliser pour effectuer des requêtes MySQL.

2. Établir une connexion à la base de données

Avant d'utiliser le langage go pour effectuer des requêtes MySQL, vous devez établir une connexion à la base de données MySQL. Pour vous connecter à la base de données MySQL, vous devez spécifier le nom d'utilisateur, le mot de passe, le nom de la base de données, l'adresse de l'hôte et d'autres informations.

  1. Ouvrez l'éditeur de langage go (par exemple : VSCode) et créez un nouveau fichier nommé db.go.
  2. Entrez le code suivant dans le fichier :
package main

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/go-sql-driver/mysql"
)

func main() {

    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/databaseName")

    if err != nil {
        log.Fatal(err)
    }

    defer db.Close()

    err = db.Ping()

    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Successful database connection")
}

Dans le code ci-dessus, nous devons spécifier le nom du pilote et la chaîne de connexion à la base de données lorsque nous utilisons la fonction sql.Open() pour ouvrir la connexion à la base de données MySQL. La chaîne de connexion spécifie le nom d'utilisateur et le mot de passe, ainsi que l'adresse de l'hôte MySQL et le numéro de port. Lors de la connexion à MySQL, le pilote MySQL sera responsable du traitement de la réponse de connexion. Si la connexion à cette base de données réussit, un pointeur vers l'objet de la base de données sera renvoyé. Une fois tous les problèmes résolus, vous devez utiliser db.Close() pour fermer la connexion afin de garantir qu'il n'y a pas de consommation excessive de ressources de base de données en raison de fuites de connexion.

3. Exécuter des instructions de requête

Après avoir obtenu la connexion à la base de données SQL, vous pouvez commencer à exécuter des requêtes et des instructions d'opération. Ce qui suit est un exemple de commande d'une instruction de requête simple :

rows, err := db.Query("SELECT id, name, age FROM user")

L'instruction de requête ci-dessus peut interroger les champs id, name et age dans la table nommée user. L'utilisation de la méthode db.Query() exécutera la requête et renverra les objets ligne (lignes) des résultats de la requête et les erreurs possibles (err). Les données de résultat de la requête sont encapsulées dans des objets de ligne (lignes).

Bien sûr, si l'instruction SQL que nous devons exécuter contient certains paramètres, nous devons utiliser des espaces réservés. Un exemple est le suivant :

rows, err := db.Query("SELECT id, name, age FROM user WHERE name = ? AND age = ?", "John", 30)

L'espace réservé est automatiquement converti au format SQL correct avant l'interrogation, et les paramètres requis pour la requête sont transmis au pilote SQL. Cette approche empêche les attaques par injection SQL et garantit la sécurité des instructions de requête.

4. Traiter les résultats de la requête

Après avoir interrogé la base de données MySQL, nous pouvons utiliser l'objet Rows pour lire les données de l'ensemble de résultats. L'objet Rows fournit un ensemble de méthodes permettant de manipuler les données de résultat de la requête. Par exemple, vous pouvez utiliser la méthode Scan() pour extraire chaque colonne de chaque ligne du jeu de résultats :

for rows.Next() {
    var id int
    var name string
    var age int
    err := rows.Scan(&id, &name, &age)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("ID:%d, Name:%s, Age:%d", id, name, age)
}

Dans le code ci-dessus, utilisez les méthodes rows.Next() et rows.Scan() pour extraire chaque colonne. lignes de données et les afficher sur la console. Lorsque la méthode rows.Next() pointe vers la ligne suivante, vous pouvez utiliser la méthode rows.Scan() pour extraire les données de ligne de cette ligne. Le paramètre de la méthode Scan() est l'adresse de chaque colonne de données.

5. Exemple de code complet

Ce qui suit est un exemple de programme complet pour interroger MySQL à l'aide du langage go, qui peut être enregistré sous forme de fichier db.go :

package main

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/go-sql-driver/mysql"
)

func main() {

    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/databaseName")

    if err != nil {
        log.Fatal(err)
    }

    defer db.Close()

    err = db.Ping()

    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Successful database connection")

    rows, err := db.Query("SELECT id, name, age FROM user")

    if err != nil {
        log.Fatal(err)
    }

    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        var age int
        err := rows.Scan(&id, &name, &age)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("ID:%d, Name:%s, Age:%d
", id, name, age)
    }

    err = rows.Err()

    if err != nil {
        log.Fatal(err)
    }

}

Résumé

Dans cet article, nous avons appris à interroger dans allez dans la base de données MySQL. Vous devez d'abord installer le pilote MySQL, puis établir une connexion à la base de données MySQL. Après avoir obtenu une connexion à la base de données, vous pouvez exécuter des requêtes et des instructions d'opération et utiliser des objets Rows pour lire les données de l'ensemble de résultats. Enfin, nous fournissons un exemple complet de programme en langage Go qui montre comment se connecter, interroger et lire la base de données MySQL.

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