golang怎么实现mysql操作

首先,确保你已经正确安装了 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 数据库,并执行一些基本的查询操作:

立即学习“go语言免费学习笔记(深入)”;

PPT.CN,PPTCN,PPT.CN是什么,PPT.CN官网,PPT.CN如何使用 PPT.CN,PPTCN,PPT.CN是什么,PPT.CN官网,PPT.CN如何使用

一键操作,智能生成专业级PPT

PPT.CN,PPTCN,PPT.CN是什么,PPT.CN官网,PPT.CN如何使用 37 查看详情 PPT.CN,PPTCN,PPT.CN是什么,PPT.CN官网,PPT.CN如何使用

package mainimport (    "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 mainimport (    "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操作的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/267287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 10:58:59
下一篇 2025年11月4日 10:59:47

相关推荐

发表回复

登录后才能评论
关注微信