Heim  >  Artikel  >  Backend-Entwicklung  >  Golang implementiert einfach MySQL

Golang implementiert einfach MySQL

WBOY
WBOYOriginal
2023-05-15 11:45:07718Durchsuche

Es ist sehr einfach, mit Golang Programme zum Betreiben von Datenbanken zu schreiben, und dies ist bei der MySQL-Datenbank keine Ausnahme. Im Folgenden erfahren Sie, wie Sie MySQL-Operationen einfach in Golang implementieren.

Stellen Sie zunächst sicher, dass Sie Golang und MySQL korrekt installiert haben und dass Sie auch den MySQL-Treiber für Go installieren müssen. Dies geht ganz einfach mit dem folgenden Befehl:

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

Bevor wir das Go-Programm erstellen, müssen wir außerdem eine MySQL-Datenbank und eine Tabelle erstellen, um die Methode zur Verwendung von Golang für Datenbankoperationen zu demonstrieren.

Angenommen, wir haben eine Datenbank mit dem Namen „test_db“ erstellt und sie enthält eine Tabelle mit dem Namen „users“. Die Struktur der Tabelle ist wie folgt:

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;

Als nächstes können wir mit dem Schreiben von Golang-Programmen beginnen. Das Folgende ist ein einfaches Programmbeispiel, das zeigt, wie man mit dem Golang-Treiber eine Verbindung zur MySQL-Datenbank herstellt und einige grundlegende Abfragevorgänge durchführt:

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())
    }
}

Durch Ausführen des obigen Programms können wir erfolgreich eine Verbindung zur MySQL-Datenbank herstellen und mithilfe des „ SELECT-Anweisung Alle Datensätze in der Tabelle „Benutzer“ und Ausdrucken der Ergebnisse.

Zusätzlich zu Abfragen können wir den Golang-Treiber auch verwenden, um andere gängige MySQL-Vorgänge wie Einfügungen, Aktualisierungen und Löschungen auszuführen. Das Folgende ist ein einfaches Programmbeispiel:

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)
}

Mit dem obigen Programmbeispiel können wir gängige MySQL-Vorgänge wie Einfügen, Aktualisieren und Löschen erfolgreich ausführen.

Insgesamt ist es sehr einfach, MySQL-Datenbankoperationen mit dem Golang-Treiber zu implementieren. Über den Golang-Treiber können verschiedene Vorgänge wie Abfragen, Einfügen, Aktualisieren oder Löschen problemlos implementiert werden.

Das obige ist der detaillierte Inhalt vonGolang implementiert einfach MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn