Comment exécuter des requêtes SQL natives dans Go : importez les packages nécessaires (tels que la base de données/sql et les pilotes de base de données). Ouvrez une connexion à la base de données. Préparez les instructions SQL à l'aide de la méthode db.Prepare. Utilisez la méthode stmt.Query pour effectuer des requêtes, en fournissant des valeurs dynamiques. Utilisez rows.Next et rows.Scan pour parcourir les résultats de la requête. Fermez la connexion à la base de données pour libérer les ressources.
Comment exécuter des requêtes SQL natives dans Golang ?
Golang fournit un puissant package de base de données SQL qui vous permet d'interagir avec des bases de données relationnelles à l'aide de requêtes SQL natives. Ce didacticiel vous expliquera comment exécuter des requêtes SQL natives à l'aide de Golang et fournira un exemple pratique.
Importez les packages nécessaires
Tout d'abord, vous devez importer les packages nécessaires :
import ( "database/sql" _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序 )
Remarque : différentes bases de données nécessiteront leurs propres pilotes. Voir [godoc](https://godoc.org/database/sql/driver) pour une liste des pilotes pris en charge.
Ouvrir la connexion à la base de données
Ensuite, ouvrez une connexion à la base de données :
db, err := sql.Open("mysql", "user:password@tcp(host:port)/database") if err != nil { log.Fatal(err) }
Assurez-vous d'ajouter utilisateur
, mot de passe
, hôte
, < Remplacez code>port et database
par les valeurs correspondantes. user
, password
, host
, port
和database
替换为相应的值。
准备 SQL 语句
要准备 SQL 查询,请使用 Prepare
方法:
stmt, err := db.Prepare("SELECT * FROM users WHERE name = ?") if err != nil { log.Fatal(err) }
这将创建一个预编译的 SQL 语句,用于稍后执行。?
占位符表示将在执行期间替换的动态值。
执行 SQL 查询
要使用指定的动态值执行查询,请使用 Query
方法:
rows, err := stmt.Query("John") if err != nil { log.Fatal(err) }
这将返回一个 Rows
对象,它包含查询结果。
处理查询结果
要遍历查询结果,请使用 Scan
Préparation des instructions SQL
Pour préparer une requête SQL, utilisez la méthodePrepare
: for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s\n", id, name) }
?
L'espace réservé représente une valeur dynamique qui sera remplacée lors de l'exécution. Exécuter une requête SQL
Pour exécuter une requête avec des valeurs dynamiques spécifiées, utilisez la méthodeQuery
: 🎜db.Close()
Rows
qui contient la requête résultat. 🎜🎜🎜Traitement des résultats de la requête🎜🎜🎜Pour parcourir les résultats de la requête, utilisez la méthode Scan
: 🎜package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序 ) func main() { db, err := sql.Open("mysql", "user:password@tcp(host:port)/database") if err != nil { log.Fatal(err) } defer db.Close() stmt, err := db.Prepare("INSERT INTO users (name) VALUES (?)") if err != nil { log.Fatal(err) } _, err = stmt.Exec("Jane") if err != nil { log.Fatal(err) } stmt, err = db.Prepare("SELECT * FROM users WHERE name = ?") if err != nil { log.Fatal(err) } rows, err := stmt.Query("Jane") if err != nil { log.Fatal(err) } for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s\n", id, name) } }
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!