Maison >développement back-end >Golang >requête mysql golang
Golang est un langage de programmation de plus en plus populaire qui excelle dans la gestion de grandes quantités de données et dans des performances de simultanéité élevées. Dans le même temps, MySQL, en tant que système de base de données relationnelle populaire, est très compatible avec Golang. Dans cet article, nous explorerons comment exécuter des requêtes MySQL dans Golang.
Avant d'utiliser Golang pour interroger MySQL, vous devez d'abord installer le pilote MySQL. Le pilote MySQL le plus couramment utilisé dans Golang est "mysql", qui peut être installé via la commande suivante :
go get -u github.com/go-sql-driver/mysql
Cette commande installera le pilote mysql dans l'environnement Golang.
Avant d'effectuer une requête MySQL, vous devez d'abord établir une connexion avec la base de données. Vous pouvez utiliser le code suivant pour établir une connexion à la base de données MySQL :
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database") if err != nil { panic(err.Error()) } defer db.Close() }
Dans le code ci-dessus, nous utilisons la fonction "sql.Open" pour ouvrir la base de données MySQL depuis Golang, avec les paramètres suivants :
Deuxième paramètre : Spécifiez les informations de connexion de la base de données MySQL, au format "username:password@tcp(host:port)/database_name"
Après avoir exécuté le requête, vous devez également transmettre l'instruction "db.Close()" pour fermer la connexion.
Après avoir établi la connexion, vous pouvez utiliser Golang pour exécuter la requête MySQL. Ce qui suit est un exemple de code simple pour exécuter l'instruction de requête SELECT :
rows, err := db.Query("SELECT name, age FROM users WHERE age > ?", 20) if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var name string var age int err = rows.Scan(&name, &age) if err != nil { panic(err.Error()) } fmt.Println(name, age) }
Dans Golang, l'exécution d'opérations telles que INSERT, UPDATE et DELETE est fondamentalement la même que l'exécution d'opérations SELECT. Voici l'exemple de code :
result, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "John", 25) if err != nil { panic(err.Error()) } lastInsertId, _ := result.LastInsertId() rowsAffected, _ := result.RowsAffected() fmt.Printf("LastInsertId: %d, RowsAffected: %d ", lastInsertId, rowsAffected)
Dans Golang, vous pouvez utiliser des instructions préparées pour exécuter des requêtes MySQL. Les instructions préparées peuvent améliorer les performances des requêtes car le serveur MySQL peut mettre en cache les mêmes instructions de requête lors de l'exécution de plusieurs instructions de requête identiques, réduisant ainsi la surcharge de compilation des instructions SQL. Voici un exemple d'utilisation d'instructions préparées :
stmt, err := db.Prepare("SELECT name, age FROM users WHERE age > ?") if err != nil { panic(err.Error()) } defer stmt.Close() rows, err := stmt.Query(20) if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var name string var age int err = rows.Scan(&name, &age) if err != nil { panic(err.Error()) } fmt.Println(name, age) }
La sécurité est très importante lors de l'exécution de requêtes MySQL. Golang fournit quelques bonnes pratiques pour l'utilisation des requêtes MySQL, notamment :
Les meilleures pratiques ci-dessus peuvent réduire le risque d'attaques telles que l'injection SQL.
Conclusion
Dans cet article, nous avons exploré comment exécuter des requêtes MySQL dans Golang. Après avoir compris les méthodes de connexion et la syntaxe de base, vous pouvez utiliser Golang pour interroger la base de données MySQL et utiliser les meilleures pratiques pour garantir la sécurité de la requête. Lorsque vous utilisez Golang pour les requêtes MySQL, gardez toujours à l'esprit les problèmes de 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!