Golang 操作 mysql 数据库(六)|Go主题月

安装驱动

与 大多编程语言一样,Golang 并没有自带任何数据库操作驱动。所以我们首先得安装第三方函数库。

这时候我也曾经有过疑问 Golang 中不是有 database/sql包?后来我搞明白了。database/sql包 提供了保证SQL或类SQL数据库的泛用接口,使用时必须注入一个数据库驱动。

由于我这次操作的为 mysql 数据库,所以使用的第三方库为:

github.com/go-sql-driv…

使用命令 go get -u github.com/go-sql-driver/mysql 给 Golang 安装 MySQL 驱动

1
2
3
4
bash复制代码$ go get -u github.com/go-sql-driver/mysql
go: finding github.com/go-sql-driver/mysql v1.5.0
go: downloading github.com/go-sql-driver/mysql v1.5.0
go: extracting github.com/go-sql-driver/mysql v1.5.0

连接数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
go复制代码package main

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

func main() {
// 数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名"
dsn := "root@tcp(127.0.0.1:3306)/dianping"
db, err := sql.Open("mysql", dsn) // open() 方法不会真正的与数据库建立连接,只是设置连接需要的参数
if err != nil {
panic(err)
}

// err:=db.Ping() //连接数据库
defer db.Close()
}

操作数据库

mysql 建立测试表

1
2
3
4
mysql复制代码create table test1(
id int primary key,
name varchar(10)
);

添加

1
2
3
4
go复制代码sql:="insert into test1 values (1,'卡卡')"
result,_:=db.Exec(sql) // 执行SQL
num,_:=result.RowsAffected(); // 获取受影响的行数
fmt.Println("受影响的行数:",num)

查询

1
2
3
4
5
scss复制代码rows,_:=db.Query("select * from test1")
for rows.Next(){ //循环显示所有的数据
rows.Scan(&id,&name)
fmt.Println(id,"--",name)
}

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%