GO连接MySQL

GO连接MySQL

因为Go语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。

由于在github上安装,所以需要安装git软件,安装过程一直点击下一步即可。安装完成后需要配置环境变量

1.1 安装git软件:

安装完毕后,

配置git的环境变量(系统环境变量PATH),这样可以使用get的指令

git

1.2  安装数据库驱动

设置GOPATH的环境变量,这样驱动才会下载到项目根目录中。

GOPATH

1.3 连接数据库

1.3.1 在src目录下创建demo.go文件,导入数据库驱动

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

注意:程序在操作数据库的时候只需要用到database/sql,而不需要直接使用数据库驱动,所以程序在导入数据库驱动的时候将这个包的名字设置成下划线。

1.3.2 通过sql.open()连接数据库

sql.open(驱动名,数据源dsn)(*DB,err)

数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名"

注意:open()在执行时不会真正的与数据库进行连接,只是设置连接数据库需要的参数
ping()方法才是连接数据库

1.3.3 执行SQL语句 创建测试表

mysql> create table stu(
    -> id int primary key,
    -> name varchar(10)
    -> );
Query OK, 0 rows affected (0.02 sec)

1.3.4 GO操作MySQL数据库 demo.go

package main

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

func main(){
	//"用户名:密码@[连接方式](主机名:端口号)/数据库名"
	db,_:=sql.Open("mysql","root:root@(127.0.0.1:3306)/itcast") // 设置连接数据库的参数
	defer db.Close()	//关闭数据库
	err:=db.Ping()		//连接数据库
	if err!=nil{
		fmt.Println("数据库连接失败")
		return
	}

	//操作一:执行数据操作语句
	sql:="insert into stu values (2,'berry')"
	result,_:=db.Exec(sql)		//执行SQL语句
	n,_:=result.RowsAffected();	//获取受影响的记录数
	fmt.Println("受影响的记录数是",n)


	//操作二:执行预处理
	stu:=[2][2] string{{"3","ketty"},{"4","rose"}}
	stmt,_:=db.Prepare("insert into stu values (?,?)")		//获取预处理语句对象
	for _,s:=range stu{
		stmt.Exec(s[0],s[1])			//调用预处理语句
	}
	

	//操作三:单行查询
	var id,name string
	rows:=db.QueryRow("select * from stu where id=4")   //获取一行数据
	rows.Scan(&id,&name)		//将rows中的数据存到id,name中
	fmt.Println(id,"--",name)


	//操作四:多行查询
	rows,_:=db.Query("select * from stu")		//获取所有数据
	var id,name string
	for rows.Next(){		//循环显示所有的数据
		rows.Scan(&id,&name)
		fmt.Println(id,"--",name)
	}

}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值