如何将 Mysql 集成到 go 框架中?通过以下步骤:安装 mysql 驱动程序创建数据库连接执行查询扫描查询结果
如何将 MySQL 集成到 Go 框架中
Go 是一种流行的编程语言,以其高性能和并发性而闻名。MySQL 是关系型数据库管理系统 (RDBMS),被广泛用于存储和管理数据。本文将指导您逐步将 MySQL 集成到您的 Go 应用程序中。
先决条件:
- 已安装 Go 语言
- 已安装 MySQL 数据库
- 已创建 MySQL 数据库和用户
步骤:
1. 安装 MySQL 驱动程序
1
|
go get Github.com/ go -sql-driver/mysql
|
2. 创建数据库连接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
user := "root"
password := "my-password"
host := "localhost"
port := "3306"
dbName := "my_db"
connectionString := fmt.Sprintf(
"%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True" ,
user,
password,
host,
port,
dbName,
)
db, err := sql.Open( "mysql" , connectionString)
if err != nil {
log.Fatal(err)
}
defer db. Close ()
}
|
3. 执行查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
const query = ` SELECT * FROM users Where id = ?`
stmt, err := db.Prepare(query)
if err != nil {
log.Fatal(err)
}
_, err = stmt.Exec( 1 )
if err != nil {
log.Fatal(err)
}
|
4. 扫描查询结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
rows, err := stmt.Query(id)
if err != nil {
log.Fatal(err)
}
for rows.Next() {
var id int
var name string
if err = rows.Scan(&id, &name); err != nil {
log.Fatal(err)
}
fmt.Printf( "ID: %d, Name: %s\n" , id, name)
}
|
实战案例
以下是一个简单的命令行应用程序,它利用 MySQL 集成向用户表中插入一个新记录:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
user := "root"
password := "my-password"
host := "localhost"
port := "3306"
dbName := "my_db"
connectionString := fmt.Sprintf(
"%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True" ,
user,
password,
host,
port,
dbName,
)
db, err := sql.Open( "mysql" , connectionString)
if err != nil {
log.Fatal(err)
}
defer db. Close ()
query := `INSERT INTO users (name, email) VALUES (?, ?)`
stmt, err := db.Prepare(query)
if err != nil {
log.Fatal(err)
}
_, err = stmt.Exec( "John Doe" , "johndoe@example.com" )
if err != nil {
log.Fatal(err)
}
fmt. Println ( "New user inserted successfully!" )
}
|