Maison >développement back-end >Golang >Golang appelle une procédure stockée

Golang appelle une procédure stockée

王林
王林original
2023-05-13 10:45:37910parcourir

Dans Golang, nous pouvons utiliser le package database/sql pour connecter et faire fonctionner la base de données. Lorsque nous devons appeler une procédure stockée, contrairement à l'appel d'instructions SQL ordinaires, nous devons utiliser certaines fonctions spéciales fournies par le package database/sql pour appeler la procédure stockée.

Une procédure stockée est un ensemble précompilé d'instructions SQL pouvant accepter des paramètres. Ils sont généralement utilisés pour effectuer certaines opérations de données complexes, ce qui peut améliorer l'efficacité et la sécurité.

Dans Golang, la connexion à la base de données peut être établie via la méthode Open(). Nous pouvons ensuite utiliser la méthode Exec() ou Query() pour exécuter des instructions SQL, y compris des procédures stockées. Cependant, l’appel de procédures stockées nécessite une manipulation particulière.

Ci-dessous, nous présenterons comment appeler des procédures stockées dans Golang.

Tout d'abord, nous devons créer une connexion à la base de données dans Golang. Nous pouvons utiliser la méthode Open() fournie par le package database/sql pour créer une connexion à la base de données MySQL, comme indiqué ci-dessous :

package main

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

func main() {

    // Establish a database connection
    db, err := sql.Open("mysql", "user:password@/dbname")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // Other database code goes here...

}

Ensuite, nous devons préparer l'instruction SQL qui appelle la procédure stockée. Dans MySQL, nous pouvons utiliser l'instruction CALL pour appeler une procédure stockée comme suit :

CALL stored_proc(?, ?)

"stored_proc" est le nom de la procédure stockée, tandis que le point d'interrogation (?) représente le paramètre. Nous ne pouvons pas spécifier ici la valeur spécifique du paramètre, mais la spécifier plus tard dans le code.

Après avoir préparé l'instruction SQL, nous pouvons utiliser la méthode Prepare() pour créer un objet d'instruction préparé. Un objet instruction préparée est une instruction compilée qui peut être transmise en paramètres et exécutée en cas de besoin. Cela ressemble à ceci :

stmt, err := db.Prepare("CALL stored_proc(?, ?)")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

Ensuite, nous devons spécifier des valeurs pour les paramètres. Nous pouvons utiliser la méthode Exec() ou Query() de l'objet instruction préparé pour exécuter l'instruction SQL, comme indiqué ci-dessous :

res, err := stmt.Exec("value1", "value2")
if err != nil {
    log.Fatal(err)
}

Cette méthode exécute la procédure stockée avec les paramètres spécifiés et renvoie le résultat. La méthode Exec() renvoie un objet sql.Result, qui peut être utilisé pour vérifier des informations telles que le nombre de lignes affectées.

Si la procédure stockée renvoie un ensemble de résultats, nous pouvons utiliser la méthode Query() de l'objet instruction préparé, comme indiqué ci-dessous :

rows, err := stmt.Query("value1", "value2")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

// Process the result set here...

Cette méthode exécute la procédure stockée et renvoie un ensemble de résultats. Nous pouvons traiter l’ensemble de résultats selon les besoins.

À la fin, nous devons fermer les ressources telles que les connexions à la base de données, les objets d'instructions préparés et les ensembles de résultats selon les besoins, comme indiqué ci-dessous :

stmt.Close()
rows.Close()
db.Close()

Ce qui précède sont les étapes de base pour appeler des procédures stockées dans Golang. L'utilisation d'objets d'instructions préparées peut efficacement éviter les problèmes de sécurité tels que l'injection SQL et peut également améliorer l'efficacité.

En général, appeler des procédures stockées dans Golang n'est pas compliqué. Nous pouvons utiliser les objets d'instruction préparés fournis par le package base de données/sql pour exécuter des procédures stockées. Pour certaines situations nécessitant des opérations de données complexes, les procédures stockées peuvent grandement améliorer l’efficacité et la sécurité.

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