


Comment utiliser le langage Go pour importer et exporter des données depuis la base de données MySQL
Avec l'avènement d'Internet et de l'ère du big data, le traitement des données est devenu une compétence nécessaire. En tant que système de gestion de bases de données relationnelles le plus populaire au monde, MySQL a été largement utilisé dans le domaine du traitement des données. MySQL présente les avantages de hautes performances, de facilité d'utilisation et de flexibilité, mais il peut y avoir des données en double ou invalides pendant le processus d'importation et d'exportation de données. Par conséquent, cet article explique comment utiliser le langage Go pour filtrer l'importation et l'exportation de données. la base de données MySQL.
1. Configuration de l'environnement
- Installer la base de données MySQL
Avant de commencer, vous devez d'abord installer une base de données MySQL . Les étapes d'installation de MySQL ne seront pas répétées ici. Vous pouvez l'installer via le site officiel ou l'installer dans votre propre source système. Une fois l'installation terminée, démarrez le service MySQL et créez une base de données.
- Installer les pilotes Go et MySQL
Vous devez installer les pilotes Go et MySQL avant d'écrire des programmes en langage Go. Le langage Go est relativement facile à installer. . Vous pouvez l'installer via le site officiel pour l'installation. Le pilote MySQL peut être installé via la commande go get.
go get -u github.com/go-sql-driver/mysql
2. Importer des données
Ce qui suit utilisera un exemple de programme pour présenter comment utiliser le langage Go pour importer des données de base de données MySQL et effectuer un filtrage des données afin de garantir qu'il n'y a pas de données en double dans la base de données.
- Écrire un programme
Ce qui suit est un programme simple en langage Go pour importer des données dans une base de données MySQL.
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 打开MySQL连接 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database") if err != nil { panic(err) } defer db.Close() // 插入数据 stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)") if err != nil { panic(err) } defer stmt.Close() _, err = stmt.Exec("Tom", 20) if err != nil { panic(err) } fmt.Println("Insert data success!") }
Dans le code ci-dessus, nous utilisons d'abord la fonction sql.Open() pour ouvrir une connexion MySQL. Parmi eux, « nom d'utilisateur » et « mot de passe » sont respectivement le nom d'utilisateur et le mot de passe MySQL, « 127.0.0.1:3306 » est l'adresse et le numéro de port de la base de données MySQL, et « base de données » est le nom de la base de données à exploiter. Ensuite, nous utilisons la fonction db.Prepare() pour préparer une instruction SQL permettant d'insérer des données dans la base de données. Utilisez ensuite la fonction stmt.Exec() pour exécuter l'instruction et insérer les données dans la base de données.
- Filtrage des données
Pour les données importées dans la base de données, nous devons nous assurer qu'il n'y a pas de données en double dans la base de données. Vous trouverez ci-dessous un exemple de programme qui ajoute des données et effectue un filtrage des données en double.
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 打开MySQL连接 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database") if err != nil { panic(err) } defer db.Close() // 插入数据并进行重复数据过滤 err = insert(db, "Tom", 20) if err != nil { panic(err) } fmt.Println("Insert data success!") } // 将数据插入到数据库中,并进行重复数据过滤 func insert(db *sql.DB, name string, age int) error { // 判断数据是否已经存在 rows, err := db.Query("SELECT COUNT(*) FROM users WHERE name = ? AND age = ?", name, age) if err != nil { return err } rows.Next() var count int err = rows.Scan(&count) if err != nil { return err } if count > 0 { fmt.Printf("Data[%s, %d] already exists ", name, age) return nil } // 插入数据 stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)") if err != nil { return err } defer stmt.Close() _, err = stmt.Exec(name, age) if err != nil { return err } return nil }
Dans le code ci-dessus, nous définissons une fonction insert() pour implémenter les fonctions d'importation et de filtrage des données. Dans la fonction insert(), utilisez d'abord l'instruction SELECT pour demander si les données à insérer existent. Si elles existent, l'opération d'insertion ne sera pas effectuée. Sinon, utilisez l'instruction INSERT pour insérer les données dans la base de données.
3. Exporter des données
Exporter des données signifie généralement exporter les données de la base de données vers un fichier dans un format spécifique pour une analyse manuelle ou un autre traitement du système. Le langage Go fournit un package fmt et un package texte/modèle, qui peuvent facilement générer des données au format texte ou au format HTML.
Ce qui suit est un exemple de programme pour exporter et sortir des données d'une base de données MySQL au format HTML.
package main import ( "database/sql" "fmt" "html/template" "os" _ "github.com/go-sql-driver/mysql" ) type User struct { Name string Age int } func main() { // 打开MySQL连接 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database") if err != nil { panic(err) } defer db.Close() // 导出数据并输出为HTML格式 err = export(db) if err != nil { panic(err) } } // 从数据库中导出数据并输出为HTML格式 func export(db *sql.DB) error { // 查询数据 rows, err := db.Query("SELECT * FROM users") if err != nil { return err } defer rows.Close() var userList []User for rows.Next() { var user User err = rows.Scan(&user.Name, &user.Age) if err != nil { return err } userList = append(userList, user) } // 输出为HTML格式 tmpl, err := template.New("userlist").Parse(` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>User list</title> </head> <body> <h1>User list</h1> <table> <thead> <tr> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> {{range .}} <tr> <td>{{.Name}}</td> <td>{{.Age}}</td> </tr> {{end}} </tbody> </table> </body> </html> `) if err != nil { return err } file, err := os.Create("userlist.html") if err != nil { return err } defer file.Close() return tmpl.Execute(file, userList) }
Dans le code ci-dessus, nous définissons une fonction export() pour implémenter les fonctions d'exportation de données et de sortie formatée. Dans la fonction export(), utilisez d’abord l’instruction SELECT pour interroger les données et stocker les résultats de la requête dans une tranche de type User. Utilisez ensuite le package de modèles pour générer les données au format HTML et les écrire dans un fichier.
Conclusion
Cet article présente la méthode d'utilisation du langage Go pour effectuer le filtrage de l'importation et de l'exportation de données pour la base de données MySQL, et explique comment utiliser le langage Go pour écrire l'importation de données pour Base de données MySQL via des exemples de programmes. Le programme de filtrage a été exporté, analysé et expliqué. Il convient de souligner que l'exemple de programme présenté dans cet article n'est qu'une méthode de base et que les lecteurs peuvent l'ajuster et l'améliorer en fonction de leurs propres besoins pour obtenir de meilleurs résultats.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

GO POINTER SYNTAXE ET ATTENDRE DES PROBLÈMES DANS LA BIBLIOTHÈQUE VIPER Lors de la programmation en langage Go, il est crucial de comprendre la syntaxe et l'utilisation des pointeurs, en particulier dans ...
