go 编程开发中 mysql 怎么使用?

您所在的位置:网站首页 怎么使用mysql go 编程开发中 mysql 怎么使用?

go 编程开发中 mysql 怎么使用?

#go 编程开发中 mysql 怎么使用?| 来源: 网络整理| 查看: 265

直接操作mysql 或者使用ORM 类型框架直接操作mysql

Go 语言提供了官方的 MySQL 驱动程序 database/sql 和 go-sql-driver/mysql,可以用于连接和操作 MySQL 数据库。以下是一个简单的示例,介绍如何使用 Go 语言连接 MySQL 数据库:

首先需要安装 MySQL,并创建一个数据库和表。例如,在 MySQL 中执行以下 SQL 语句:CREATE DATABASE example; USE example; CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id) ); INSERT INTO users (name, age) VALUES ('Alice', 28), ('Bob', 35), ('Charlie', 42);

2. 安装 go-sql-driver/mysql,可以使用以下命令

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

3. 在 Go 代码中导入 database/sql 和 github.com/go-sql-driver/mysql 包:

import ( "database/sql" _ "github.com/go-sql-driver/mysql" )

4. 使用 database/sql 包的 Open 函数,打开一个 MySQL 数据库连接

db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/example") if err != nil { log.Fatal(err) } defer db.Close()

其中,username 和 password 是 MySQL 数据库的用户名和密码,127.0.0.1 是 MySQL 数据库服务器的 IP 地址,3306 是 MySQL 数据库的默认端口号,example 是数据库的名称。

5. 执行 SQL 查询语句,获取数据:

rows, err := db.Query("SELECT name, age FROM users") if err != nil { log.Fatal(err) } defer rows.Close() for rows.Next() { var name string var age int err := rows.Scan(&name, &age) if err != nil { log.Fatal(err) } fmt.Printf("%s is %d years old\n", name, age) } err = rows.Err() if err != nil { log.Fatal(err) }

上述示例中,使用 Query 函数执行 SQL 查询语句,并获取结果集。使用 Scan 函数获取结果集中的每一行数据。

6. 如果需要执行 SQL 插入、更新或删除语句,可以使用 Exec 函数:

result, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Dave", 21) if err != nil { log.Fatal(err) } id, err := result.LastInsertId() if err != nil { log.Fatal(err) } fmt.Println("Inserted new row with ID:", id)

上述示例中,使用 Exec 函数执行 SQL 插入语句,并使用 LastInsertId 函数获取插入数据的 ID。

总之,Go 语言的 MySQL 驱动程序提供了灵活和易用的 API,可以用于连接和操作 MySQL 数据库。开发人员可以根据实际需求,选择合适的方式进行操作。

GORM 使用

ORM 是一个 Go 语言的 ORM 框架,它提供了便捷的数据库操作接口,支持多种数据库。下面是一个使用 GORM 连接 MySQL 数据库,并进行数据库操作的示例

首先需要安装 GORM,可以使用以下命令:go get gorm.io/gorm go get gorm.io/driver/mysql

2. 在 Go 代码中导入 gorm.io/gorm 和 gorm.io/driver/mysql 包:

import ( "gorm.io/driver/mysql" "gorm.io/gorm" )

3. 使用 gorm.Open 函数打开一个 MySQL 数据库连接:

dsn := "username:password@tcp(127.0.0.1:3306)/example?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { log.Fatal(err) }

其中,username 和 password 是 MySQL 数据库的用户名和密码,127.0.0.1 是 MySQL 数据库服务器的 IP 地址,3306 是 MySQL 数据库的默认端口号,example 是数据库的名称。

4. 定义数据模型。例如,创建一个名为 User 的结构体,用于表示用户:

type User struct { ID uint Name string Age int }

5. 在 GORM 中,每个表都对应一个模型,可以使用 db.AutoMigrate 函数自动创建表。例如,创建名为 users 的表:

err = db.AutoMigrate(&User{}) if err != nil { log.Fatal(err) }

6. 使用 GORM 的 Create 函数创建新的数据记录:

user := User{Name: "Alice", Age: 28} result := db.Create(&user) if result.Error != nil { log.Fatal(result.Error) } fmt.Println("Created new user:", user)

7. 使用 GORM 的 Find 函数查询数据记录:

var users []User result := db.Find(&users) if result.Error != nil { log.Fatal(result.Error) } fmt.Println("Found users:", users)

8. 使用 GORM 的 First 函数查询单个数据记录:

var user User result := db.First(&user, "name = ?", "Alice") if result.Error != nil { log.Fatal(result.Error) } fmt.Println("Found user:", user)

9. 使用 GORM 的 Updates 函数更新数据记录:

result := db.Model(&user).Updates(User{Name: "Alice Smith", Age: 29}) if result.Error != nil { log.Fatal(result.Error) } fmt.Println("Updated user:", user)

总之,GORM 提供了方便的接口,可以大大简化 Go 语言对数据库的操作。开发人员可以根据实际需求,选择合适的方式进行操作。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3