首頁  >  文章  >  資料庫  >  golang怎麼實作mysql運算

golang怎麼實作mysql運算

王林
王林轉載
2023-05-29 18:34:491152瀏覽

首先,確保你已經正確安裝了 Golang 和 MySQL,同時也需要安裝 Go 的 MySQL 驅動程式。這可以透過以下命令輕鬆完成:

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

在創建 Go 程式之前,我們還需要建立一個 MySQL 資料庫以及一張表來示範使用 Golang 進行資料庫操作的方法。

假設我們已經建立了一個名為 "test_db" 的資料庫,並且其中包含一張名為 "users" 的表。表的結構如下:

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;

接下來,我們就可以開始寫 Golang 程式了。以下是一個簡單的程式範例,展示如何使用Golang 驅動程式來連接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)/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())
    }
}

透過執行以上程序,我們可以成功連接MySQL 資料庫,並使用" SELECT" 語句查詢"users" 表中的所有記錄,並將結果列印輸出。

除了查詢外,我們還可以使用 Golang 驅動程式來執行其他常見的 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)/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)
}

透過以上程式範例,我們可以成功執行插入、更新和刪除等常見 MySQL 操作。

以上是golang怎麼實作mysql運算的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除