Go入门-mysql连接与返回查询结果

一、Goland库准备

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

如果在导入库时显示导入超时则可以去更换一下代理,打开终端。

go env -w GOPROXY=https://goproxy.cn

然后再次导入即可。

Golang提供了标准库database/sql用于和数据库交互,database/sql只是一套统一地抽象接口,真正与数据库打交道的是各个数据库对应的驱动实现,因此使用前需要先注册对应数据库的驱动(github.com/go-sql-driver/mysql),然后就可以使用SQL中定义的接口来统一地操作数据库了。
原文链接:https://blog.csdn.net/weixin_45005012/article/details/125928610


二、编码

1、全部代码


func main() {
	mysqlUrl := "username:password@(Your IP:port)/DBname"
	db, _ := sql.Open("mysql", mysqlUrl)

	rows, _ := db.Query("select * from user")
	for rows.Next() {
		var id int
		var username string
		var password string

		rows.Scan(&id, &username, &password, 0)
		fmt.Println(id, username, password)
	}

	defer db.Close()
	err := db.Ping()
	if err != nil {
		fmt.Println("mysql连接失败,错误日志为:", err.Error())
	} else {
		fmt.Println("连接成功")
	}
}

首先定义了mysql连接的url,其中格式如下。用:=来定义变量相当于声明并赋值。

mysqlUrl := "username:password@(Your IP:port)/DBname"

2、执行函数

以下四种方法来进行数据库操作。

db.Query()    
db.QueryRow()
db.Prepare(sql)   stmt.Query(args)
db.Exec()

3、查询语法

rows, _ := db.Query("select * from user")
	for rows.Next() {
		var id int
		var username string
		var password string

		rows.Scan(&id, &username, &password, 0)
		fmt.Println(id, username, password)
	}

首先定义查询语句,然后添加for循环,并且定义与字段名相对应的变量(这里没有尝试过是否名称是否要完全一致),相当于是在返回的结果中取值。

数据表

 这里发现的问题是:我只想要查询id,username,password三个字段,于是我在rows.Scan()函数中只添加了三个别名,但是这个时候返回的每一行结果都是0。

 于是我多尝试了一下发现,将mid字段名加上则可以正常返回结果,在此基础之上我将mid定义去掉,然后最后一个字段填一个0,神奇的是竟然可以。于是可以正常返回前面的所想要的字段。 


over!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值