Maison > base de données > tutoriel mysql > Comment utiliser le langage Go pour importer et exporter des données depuis la base de données MySQL

Comment utiliser le langage Go pour importer et exporter des données depuis la base de données MySQL

WBOY
Libérer: 2023-06-17 16:04:40
original
1372 Les gens l'ont consulté

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

  1. 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.

  1. 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.

  1. É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!")
}
Copier après la connexion

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.

  1. 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
}
Copier après la connexion

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)
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal