go语言连接mysql数据库的个人理解

来源:互联网 发布:excel数据汇总公式 编辑:程序博客网 时间:2024/06/13 04:25

相信简单的使用golang语言,大家都会,可是很多时候,我们都离不开与数据库的交互,今天就介绍一下go语言,如何连接mysql
在没有连接上数据库之前,总是会碰到这样那样的报错,经过反复的思考和总结,今天就来说一下go语言连接mysql的一些坑吧
准备工作:
1.首先配置好go环境,即可以运行go语言
先测试一下go是否安装成功,如图用 cmd 输入go 按enter!
这里写图片描述
出现此类帮助信息,则代表go安装成功!
1.2 接下来配置环境变量
如何设置环境变量,在上一节,已经提到过了,这次说一下重点,
1.2.1 GOROOT 环境变量
这里写图片描述
这里配置的目录是go安装的目录
1.2.2 GOPATH
这里写图片描述
这里配置的目录是工作目录,也就是你要运行的程序的目录
就强调这两点
1.3在工作目录下添加三个子文件夹
这里写图片描述
其中src代表存放的是要运行的文件如:hello.go
hello.go的内容

package mainimport "fmt"func main(){fmt.Printf("Hello 百度回享")}

打开cmd控制器然后输入go run hello.go
这里写图片描述
注意一点只有你打开的目录是你的工作目录时才可以直接写hello.go若不是工作目录,这里就得写你自己的工作目录,如:go run F:/go/test/src/hello.go
若运行结果,如上图则go语言配置成功,接下来连接mysql
2.1 连接mysql之前先要下载mysql驱动
可以用cmd下载:如 :go get github.com/go-sql-driver/MYSQL
如果下载不到,就可以自己输入网址去下载,然后将它拷贝到src的文件夹下面
接下里的内容很关键,记住因为你下载的是这个目录:github.com/go-sql-driver/MYSQL,所以你如果使用cmd是话就会自动创建,而如果是自己考培的话就要加上目录,或者直接建一个mysql文件夹,将拷贝来的数据放到其下面,
2.2 接下来就要验证是否成功连接数据库
创建一个main.go,代码如下

package mainimport(    "database/sql"    _"github.com/Go-SQL-Driver/MySQL"//就是你下载的文件地址,如果是自己拷贝的,那么就写自己创建的路径    "log"    //"reflect"    //获取变量类型用)// user中的数据根据自己要查询的表的数据做响应的改变,type User struct{    id int    username string    password string    create_time string    create_user string    role_id int    nick_name string    remak string} func main (){ // db-user mysql账号 // db-psw mysql密码 // db-datebase 需要连接的数据库名称    db,err := sql.Open("mysql","db-user:db-psw@tcp(localhost:3306)/db-database?charset=utf8")    if err != nil{            panic(err.Error())            log.Println(err)            return    }    defer db.Close()  //只有在前面用了 panic[抛出异常] 这时defer才能起作用,如果链接数据的时候出问题,他会往err写数据。defer:延迟,这里立刻申请了一个关闭sql 链接的草错,defer 后的方法,或延迟执行。在函数抛出异常一会被执行    var user User    select_sql := "select * from yttz_users  "    select_err := db.QueryRow(select_sql).Scan(&user.id,&user.username,&user.password,&user.create_time,&user.create_user,&user.role_id,&user.nick_name,&user.remak)//查询一条,返回一条结果。并赋值到user这个结构体类型的变量中,就算查询到的是多条,单返回的还是一条,注意这里出现的数据,在user中必须存在否则会报错    if select_err != nil {//如果没有查询到任何数据就进入if中err:no rows in result set            log.Println(select_err)            return    }    log.Println(user)}

若出现你查询后的数据说明数据库连接成功,便会出现如下效果
这里写图片描述

0 0
原创粉丝点击