Maison > base de données > tutoriel mysql > Comment implémenter l'opération MySQL dans Golang

Comment implémenter l'opération MySQL dans Golang

王林
Libérer: 2023-05-29 18:34:49
avant
1228 Les gens l'ont consulté

Tout d'abord, assurez-vous d'avoir installé Golang et MySQL correctement, et vous devez également installer le pilote MySQL pour Go. Cela peut être facilement fait avec la commande suivante :

go get -u github.com/go-sql-driver/mysql
Copier après la connexion

Avant de créer le programme Go, nous devons également créer une base de données MySQL et une table pour démontrer la méthode d'utilisation de Golang pour les opérations de base de données.

Supposons que nous ayons créé une base de données nommée "test_db" et qu'elle contienne une table nommée "users". La structure du tableau est la suivante :

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `age` smallint(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Copier après la connexion

Ensuite, nous pouvons commencer à écrire des programmes Golang. Ce qui suit est un exemple de programme simple qui montre comment utiliser le pilote Golang pour se connecter à la base de données MySQL et effectuer certaines opérations de requête de base :

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)/test_db?charset=utf8mb4")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 执行查询操作
    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    // 遍历查询结果
    for rows.Next() {
        var id int
        var name string
        var email string
        var age int
        err := rows.Scan(&id, &name, &email, &age)
        if err != nil {
            panic(err.Error())
        }
        fmt.Println(id, name, email, age)
    }

    // 检查是否存在错误
    err = rows.Err()
    if err != nil {
        panic(err.Error())
    }
}
Copier après la connexion

En exécutant le programme ci-dessus, nous pouvons nous connecter avec succès à la base de données MySQL et effectuer une requête en utilisant le " Instruction SELECT" Tous les enregistrements de la table "utilisateurs" et imprimer les résultats.

En plus des requêtes, nous pouvons également utiliser le pilote Golang pour effectuer d'autres opérations MySQL courantes telles que les insertions, les mises à jour et les suppressions. Ce qui suit est un exemple de programme simple :

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)/test_db?charset=utf8mb4")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 插入一条记录
    stmt, err := db.Prepare("INSERT INTO users(name, email, age) VALUES(?, ?, ?)")
    if err != nil {
        panic(err.Error())
    }
    defer stmt.Close()

    result, err := stmt.Exec("Tom", "tom@email.com", 30)
    if err != nil {
        panic(err.Error())
    }
    lastInsertId, _ := result.LastInsertId()
    fmt.Println("新增记录的 ID:", lastInsertId)

    // 更新一条记录
    stmt, err = db.Prepare("UPDATE users SET name=?, age=? WHERE id=?")
    if err != nil {
        panic(err.Error())
    }
    defer stmt.Close()

    result, err = stmt.Exec("Jerry", 25, 1)
    if err != nil {
        panic(err.Error())
    }
    affectRow, _ := result.RowsAffected()
    fmt.Println("受影响的行数:", affectRow)

    // 删除一条记录
    stmt, err = db.Prepare("DELETE FROM users WHERE id=?")
    if err != nil {
        panic(err.Error())
    }
    defer stmt.Close()

    result, err = stmt.Exec(1)
    if err != nil {
        panic(err.Error())
    }
    affectRow, _ = result.RowsAffected()
    fmt.Println("受影响的行数:", affectRow)
}
Copier après la connexion

Avec l'exemple de programme ci-dessus, nous pouvons effectuer avec succès des opérations MySQL courantes telles que l'insertion, la mise à jour et la suppression.

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:yisu.com
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