关闭

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

标签: 数据库mysqlgo语言golang测试
69人阅读 评论(0) 收藏 举报
分类:

相信简单的使用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 main
import "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 main
import(
    "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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10963次
    • 积分:351
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类