Maison >développement back-end >Golang >Comment effectuer une requête de base de données dans Golang
Golang est un langage de programmation efficace, rapide et puissant qui peut être utilisé pour créer diverses applications, particulièrement remarquables dans le développement Web. Lorsqu'il est utilisé conjointement avec une base de données, Golang fournit des outils puissants pour aider les développeurs à manipuler les bases de données. Dans cet article, nous nous concentrerons sur la façon dont Golang effectue des requêtes de base de données.
1. Requête de base de données Golang
Il existe deux manières principales d'interroger la base de données dans Golang : l'une consiste à utiliser le package base de données/sql fourni dans la bibliothèque standard, et l'autre consiste à utiliser un framework ORM, tel que GORM, XORM, etc. Ici, nous allons présenter comment utiliser le package base de données/sql pour les requêtes.
database/sql est un package de la bibliothèque standard Golang pour exploiter des bases de données relationnelles. Utilisez-le pour vous connecter à la base de données et effectuer des opérations telles que l'importation, l'insertion, la mise à jour et la suppression. Avant d'utiliser database/sql, vous devez installer le pilote de base de données correspondant. Par exemple, si vous souhaitez vous connecter à MySQL, vous devez installer le pilote MySQL. Les pilotes de base de données couramment utilisés dans Golang incluent : mysql, sqlite, postgres, etc.
2. Golang se connecte à la base de données
Avant d'utiliser database/sql pour interroger la base de données, nous devons d'abord nous connecter à la base de données. Voici un exemple de code pour se connecter à une base de données MySQL :
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database_name?charset=utf8") if err != nil { panic(err.Error()) } defer db.Close() }
Parmi elles, la fonction sql.Open() renvoie un objet de base de données db, que nous pouvons utiliser pour faire fonctionner la base de données. Une autre chose à noter est qu'une fois l'opération de base de données terminée, la base de données doit être fermée via le mot-clé defer.
3. Données de requête Golang
Après une connexion réussie à la base de données, nous pouvons exécuter des instructions SQL via l'objet db pour interroger les données. Voici un exemple de code pour interroger une donnée :
import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) type User struct { Id int Name string Age int } func main() { db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database_name?charset=utf8") if err != nil { panic(err.Error()) } defer db.Close() var ( id int name string age int ) err = db.QueryRow("SELECT id, name, age FROM users WHERE id = ?", 1).Scan(&id, &name, &age) switch { case err == sql.ErrNoRows: fmt.Println("没有这条记录!") case err != nil: panic(err.Error()) default: user := User{Id:id, Name:name, Age:age} fmt.Println(user) } }
Dans cet exemple de code, nous définissons une structure utilisateur User et interrogeons les données avec l'identifiant 1 dans la base de données via la méthode QueryRow(). La méthode QueryRow() exécute une requête et analyse ses résultats dans une ligne de données. Ici, nous utilisons la méthode Scan() pour mapper les résultats de la requête de base de données à la structure de données utilisateur que nous avons définie, et enfin générer les données.
De même, nous pouvons également interroger plusieurs lignes de données. Voici un exemple de code pour interroger plusieurs lignes de données :
import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) type User struct { Id int Name string Age int } func main() { db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database_name?charset=utf8") if err != nil { panic(err.Error()) } defer db.Close() rows, err := db.Query("SELECT id, name, age FROM users") if err != nil { panic(err.Error()) } defer rows.Close() var users []User for rows.Next() { var user User err := rows.Scan(&user.Id, &user.Name, &user.Age) if err != nil { panic(err.Error()) } users = append(users, user) } fmt.Println(users) }
Dans cet exemple de code, nous utilisons la méthode Query() pour interroger la table utilisateur dans la base de données et analyser tous les résultats de la requête via la boucle for et Next(). méthode. Dans le corps de la boucle, nous définissons une structure User et mappons les résultats de la requête de base de données à la structure via la méthode Scan(). Enfin, nous enregistrons les résultats dans une tranche et générons la tranche.
4. Résumé
Grâce à l'exemple de code ci-dessus, nous pouvons voir qu'il est très pratique et efficace d'utiliser le package database/sql pour les requêtes de base de données dans Golang. Nous pouvons exploiter la base de données de manière flexible et répondre à divers besoins en matière de requêtes de données. Sur cette base, Golang fonctionne très bien dans le développement Web. Bien entendu, afin d'obtenir une meilleure expérience, nous pouvons également choisir d'utiliser le framework ORM pour exploiter la base de données.
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!