欢迎光临散文网 会员登陆 & 注册

go语言操作mysql数据库

2023-07-27 14:46 作者:青阳小栈  | 我要投稿

在Go语言中使用MySQL,需要使用第三方包 github.com/go-sql-driver/mysql 来连接和操作MySQL数据库。下面是一个详细的示例:

首先,安装MySQL驱动包: 在命令行中运行以下命令来安装 github.com/go-sql-driver/mysql 包:

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

创建一个Go文件(例如 main.go),导入 database/sqlgithub.com/go-sql-driver/mysql 包,并连接到MySQL数据库:

package main


import (

    "database/sql"

    "fmt"

    _ "github.com/go-sql-driver/mysql"

)


func main() {

    // 连接数据库

    db, err := sql.Open("mysql", "username:password@tcp(hostname:port)/dbname")

    if err != nil {

        panic(err.Error())

    }

    defer db.Close()


    // 测试连接是否成功

    err = db.Ping()

    if err != nil {

        panic(err.Error())

    }

    fmt.Println("Connected to MySQL database!")


    // 查询数据库

    rows, err := db.Query("SELECT id, name FROM users")

    if err != nil {

        panic(err.Error())

    }

    defer rows.Close()


    // 处理查询结果

    for rows.Next() {

        var id int

        var name string

        err = rows.Scan(&id, &name)

        if err != nil {

            panic(err.Error())

        }

        fmt.Printf("ID: %d, Name: %s\n", id, name)

    }

}

需要将 usernamepasswordhostnameportdbname 替换为你的MySQL数据库的实际信息。

运行代码后,它将连接到MySQL数据库,并执行一个简单的查询,输出查询结果中的每行记录的ID和Name。


插入数据到数据库:

package main


import (

    "database/sql"

    "fmt"

    _ "github.com/go-sql-driver/mysql"

)


func main() {

    // 连接数据库

    db, err := sql.Open("mysql", "username:password@tcp(hostname:port)/dbname")

    if err != nil {

        panic(err.Error())

    }

    defer db.Close()


    // 插入数据

    insertStmt, err := db.Prepare("INSERT INTO users (name, age) VALUES (?, ?)")

    if err != nil {

        panic(err.Error())

    }

    defer insertStmt.Close()


    // 替换成实际的数据

    name := "John"

    age := 30


    _, err = insertStmt.Exec(name, age)

    if err != nil {

        panic(err.Error())

    }


    fmt.Println("Data inserted successfully!")

}

更新数据库中的数据:

package main


import (

    "database/sql"

    "fmt"

    _ "github.com/go-sql-driver/mysql"

)


func main() {

    // 连接数据库

    db, err := sql.Open("mysql", "username:password@tcp(hostname:port)/dbname")

    if err != nil {

        panic(err.Error())

    }

    defer db.Close()


    // 更新数据

    updateStmt, err := db.Prepare("UPDATE users SET age = ? WHERE name = ?")

    if err != nil {

        panic(err.Error())

    }

    defer updateStmt.Close()


    // 替换成实际的数据

    name := "John"

    newAge := 35


    _, err = updateStmt.Exec(newAge, name)

    if err != nil {

        panic(err.Error())

    }


    fmt.Println("Data updated successfully!")

}



go语言操作mysql数据库的评论 (共 条)

分享到微博请遵守国家法律