如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人博客
安装驱动
与 大多编程语言一样,Golang 并没有自带任何数据库操作驱动。所以我们首先得安装第三方函数库。
这时候我也曾经有过疑问 Golang 中不是有 database/sql
包?后来我搞明白了。database/sql包
提供了保证SQL或类SQL数据库的泛用接口,使用时必须注入一个数据库驱动。
由于我这次操作的为 mysql 数据库,所以使用的第三方库为:
https://github.com/go-sql-driver/mysql
使用命令 go get -u github.com/go-sql-driver/mysql
给 Golang 安装 MySQL 驱动
$ 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
连接数据库
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 建立测试表
create table test1(
id int primary key,
name varchar(10)
);
添加
sql:="insert into test1 values (1,'卡卡')"
result,_:=db.Exec(sql) // 执行SQL
num,_:=result.RowsAffected(); // 获取受影响的行数
fmt.Println("受影响的行数:",num)
查询
rows,_:=db.Query("select * from test1")
for rows.Next(){ //循环显示所有的数据
rows.Scan(&id,&name)
fmt.Println(id,"--",name)
}