go语言mysql数据库开发,Go语言中操作MySQL数据库的方法_后端开发

golang找不到package怎么办_后端开发

golang编译器默认会在当前目录查找src目录下的package,如果没有src目录,编译器就会找不到package,解决方法是修改$GOPATH为src同级目录即可。

Go语言是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。go语言教程栏目就来为大家介绍一下go语言中操作MySQL数据库的方法。

8b4690a3bbf3607580bbf278cdd7d70d.png

Go语言操作MySQL数据库:

安装go操作MySQL的驱动

go get -u -v github.com/go-sql-driver/mysql

go操作MySQL数据库

导包

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

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

连接数据库,用sql.Open()方法,open()方法的第一个参数是驱动名称,第二个参数是连接字符串,格式为:用户名:密码@tcp(ip:port)/数据库名称?编码方式,返回值是连接对象和错误信息,例如:

conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")

defer conn.Close()//随手关闭数据库是个好习惯

执行数据库操作。

数据库的主要方法有:

Query 执行数据库的查询操作,例如一个Select语句,返回数据类型为*Rows

QueryRow 执行数据库至多返回一条数据,返回数据类型为*Row

Exec 执行数不返回任何rows的据库语句,例如delete操作

PrePare 准备一个数据库query操作,返回一个*Stmt,用于后续query或Exec。这个Stmt可以被多次执行,或者并发执行

创建表

golang安装步骤_后端开发

golang安装步骤:首先访问golang的官网下载地址,下载go.windows.amd64.msi安装文件;然后双击运行该安装包进行安装;最后打开计算机系统变量,将c:\Go\bin添加到Path变量中即可。

exec函数如下:

func (db *DB) Exec(query string, args ...interface{}) (Result, error)

创建表的方法也是Exec(),参数是SQL语句,返回值是结果集和错误信息.

其中result包含的内容有:

type Result interface {

LastInsertId() (int64, error)

RowsAffected() (int64, error)

}

RowsAffected() 函数,可以获得成功执行SQL后对数据库所影响的行数。

res ,err:= conn.Exec("create table user(name VARCHAR(40),pwd VARCHAR(40))")

beego.Info("create table result=",res.,err)

增删改操作

执行增删改操作语句的是Exec(),参数是SQL语句,返回值是结果集和错误信息,通过对结果集的判断,得到执行结果的信息。以插入数据为例代码如下:

res,_:=stmt.Exec("insert user(name,pwd) values (?,?)","tony","tony")

count,_:=res.RowsAffected()

this.Ctx.WriteString(strconv.Itoa(int(count)))

查询操作

用的函数是Query()和QueryRow.

func (db *DB) QueryRow(query string, args ...interface{}) *Row

func (db *DB) Query(query string, args ...interface{}) (*Rows, error)

利用QueryRow实现单行查询,能确定该SQL语句的查询结果为一条记录。将结果中的字段值使用Scan()函数依次提取。

利用Query实现多行数据查询,返回值为查询结果集和错误信息。通过next和Scan函数一起将数据取出来

代码如下:

单行查询:

row:= conn.QueryRow(`select * from user where userName = "wyj"`)

var name,pwd string

row.Scan(&name,&pwd)

beego.Info(name,"------",pwd)

多行查询:

data ,err :=conn.Query("SELECT name from user")

var userName string

if err == nil{

for data.Next(){

data.Scan(&userName)

beego.Info(userName)

}

}

全部代码

//连接数据库

conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/testtest?charset=utf8")

if err != nil{

beego.Info("链接失败")

}

defer conn.Close()

//建表

res ,err:= conn.Exec("create table user(userName VARCHAR(40),passwd VARCHAR(40))")

beego.Info("create table result=",res,err)

//插入数据

res,err =conn.Exec("insert user(userName,passwd) values(?,?)","itcast","heima")

beego.Info(res,err)

//单行查询

row:= conn.QueryRow(`select * from user where userName = "wyj"`)

var name,pwd string

row.Scan(&name,&pwd)

beego.Info(name,"------",pwd)

//多行查询

data ,err :=conn.Query("SELECT userName from user")

var userName string

if err == nil{

for data.Next(){

data.Scan(&userName)

beego.Error(userName)

}

}

更多go语言知识请关注ki4网go语言教程栏目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值