Comment utiliser n’importe quelle base de données SQL dans Go

Les bases de données SQL stockent des collections de données dans des lignes et des colonnes. Vous pouvez récupérer et mettre à jour les données dans un système de gestion de base de données relationnelle (RDBMS) à l’aide du langage SQL. Parmi les nombreuses bases de données SQL disponibles, les plus populaires sont MySQL, PostgreSQL, Microsoft SQL Server et SQLite.

La fonctionnalité d’interaction avec les bases de données dans Go se trouve dans le package database/sql, qui fait partie de la bibliothèque standard.

Le package database/sql interagit avec les bases de données SQL à l’aide de pilotes. Vous pouvez importer un package de pilote approprié pour votre SGBDR et l’utiliser pour interagir avec la base de données.

Premiers pas avec les bases de données SQL dans Go

Le package database/sql est une interface générique pour les bases de données relationnelles. Pour travailler avec un serveur de base de données spécifique, vous devrez utiliser l’un des nombreux pilotes disponibles.

Heureusement, vous n’avez pas à vous soucier des implémentations spécifiques au-delà du pilote. Le package database/sql gère les opérations de base de données indépendamment du serveur auquel vous vous connectez.

Certains des pilotes de base de données Go les plus populaires sont :

Vous pouvez utiliser la liste des pilotes LibHunt pour trouver des équivalents pour d’autres types de bases de données. La liste montre également la popularité relative de chaque système de base de données :

Installation et importation des pilotes de base de données Go

Une fois que vous avez créé un espace de travail Go et initialisé un fichier de modules Go, installez le pilote qui correspond à votre système de base de données. Par exemple, exécutez l’une des commandes suivantes dans le répertoire de votre espace de travail pour installer le pilote MySQL ou SQLite :

go get -u github.com/go-sql-driver/mysql
go get github.com/mattn/go-sqlite3

Après avoir installé votre pilote, importez-le pour les effets secondaires en préfixant un trait de soulignement avant le package. Par exemple, pour importer le pilote MySQL avec le package database/sql :

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

En important le package du pilote pour les effets secondaires, vous pouvez l’utiliser pour vous connecter à la base de données et y exécuter des opérations.

Se connecter à une base de données SQL avec Go

Après avoir importé les pilotes de base de données, vous pouvez créer une connexion à la base de données à l’aide de Ouvert méthode de la base de données/sql forfait. Cette méthode prend le nom du pilote et le chemin d’accès à la base de données (pour SQLite) ou une chaîne de connexion (pour MySQL). Par exemple, utilisez l’une des options suivantes :

db, err := sql.Open("sqlite3", "models/testdb.db") 

db, err := sql.Open("mysql", "user:password@/dbname")

Une fois que vous avez tenté d’ouvrir la connexion, n’oubliez pas de rechercher une erreur :

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

En fonction de votre système de base de données, le Ouvert La méthode peut renvoyer une erreur si la base de données n’existe pas. Une fois connecté à une base de données, vous pouvez exécuter des requêtes et préparer des instructions à l’aide de l’instance de base de données qui Ouvert revenir.

Exécution de commandes SQL

Vous pouvez exécuter des commandes SQL à l’aide de Préparer méthode de votre instance de base de données. la Préparer La méthode prend une commande SQL et renvoie une instruction préparée pour exécution avec un objet d’erreur. Par exemple, si vous souhaitez créer une nouvelle table :

command, err := db.Prepare("CREATE TABLE IF NOT EXISTS login(username TEXT, password TEXT)")

L’instruction ci-dessus crée une table nommée connexion, s’il n’existe pas déjà. La nouvelle table a des champs nommés Nom d’utilisateur et le mot de passechacun de type TEXTE.

Si vous insérez des valeurs de votre programme dans vos requêtes, vous pouvez utiliser la notation de point d’interrogation (?) pour indiquer les espaces réservés, puis transmettre les paramètres lors de l’exécution de l’instruction.

command, err := db.Prepare("INSERT INTO login(username, password) values(?,?)")

Une fois que vous avez créé une instruction préparée, vous pouvez l’exécuter en utilisant son Exécutif méthode. Cette méthode vous permet de passer des valeurs de paramètres depuis votre programme :

exec, err := command.Exec(value1, Value2)

if err != nil {
return
}

La première valeur qui EXE() renvoie est le résultat de la requête SQL sur votre base de données. À l’aide de ce résultat de requête, vous pouvez vérifier le nombre de lignes concernées ou le dernier ID inséré :

affected, err := exec.RowsAffected()

if err != nil {
return
}

fmt.Println(affected)

id, err := exec.LastInsertId()

if err != nil {
return
}

fmt.Println(id)

Récupération des résultats de la requête

Le package database/sql vous permet d’interroger les résultats de la base de données à l’aide de la requête méthode d’une instance de base de données :

rows, err := db.Query("SELECT * FROM User")

if err != nil {
return
}

la requête méthode renvoie un Lignes struct que vous pouvez utiliser pour travailler avec votre jeu de résultats. Par exemple, vous pouvez utiliser le Prochain méthode de votre instance de lignes pour la parcourir et travailler avec des lignes individuelles :

var username, password string

for rows.Next() {
err := rows.Scan(&username, &password)

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

fmt.Println(username, password)
}

Dans l’exemple ci-dessus, deux variables de chaîne—Nom d’utilisateur et le mot de passe— représentent chaque valeur de colonne. la analyse décode la ligne actuelle en ces variables correspondantes.

Les bases de données SQL sont toujours utiles

L’utilisation de bases de données dans Go est simple avec le package database/sql. Vous pouvez l’utiliser pour interroger et exécuter facilement des commandes SQL dans Go.

Les bases de données SQL sont au cœur de nombreuses applications, en particulier celles qui traitent des ensembles de données volumineux ou complexes. Vous pouvez utiliser des bases de données telles que la base de données SQLite en mémoire pour vos projets simples tels que le grattage Web et la création de bots.

Une bonne connaissance de SQL et des systèmes de gestion de bases de données est essentielle pour les utiliser efficacement dans vos programmes. Cependant, si vous choisissez de ne pas apprendre SQL, vous pouvez apprendre à utiliser les ORM pour interagir avec les bases de données SQL dans Go.

Leave a Comment

Your email address will not be published.