目录
- 1、简介
- 2、下载包,并创建包路径
- 3、引用包
- 4、举例说明
- 5、效果图
1、简介
Go语言是个很方便的具有动态写法的静态语言,读取mysql是go语言中必不可少的操作,它怎么实现呢?
请听我一一道来
2、下载包,并创建包路径
首先github中下载mysql的包,地址:https://github.com/go-sql-driver/mysql 下载好包后,在Go的GOPATH路径的src文件夹中依次建立如github多级路径中的名字。
例如:
mysql这个包在github中是在github.com下的go-sql-driver下的mysql里面
那么我们就在我们机器的GOPATH路径的src文件夹下依次创建github.com,go-sql-driver,mysql
并把下载的go的源码包放入到最后一级目录下面。
我是在windows上开发的这个示例,这里是我截的图:
3、引用包
创建go文件
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
直接引入头文件即可,有细心的同学已经看的“database/sql”这个包了,这个包是go的标准库里面的包。
在go的文档中有记载,可以在这个网址 https://studygolang.com/pkgdoc 中看
4、举例说明
这里我做了一个小示例,读取指定表的指定字段中的数据。
package main
/**
Author:ShaZhenYu
Date:20180926
*/
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
const (
mysql_user = "root"
mysql_passwd = "Qnzs123"
mysql_ip = "127.0.0.1"
mysql_port = "3306"
mysql_robot = "robot"
mysql_qyDB = "qy10000000051"
)
func main() {
//此示例传入一个参数,返回两个参数
var qID = "L400000006"
//读取mysql指定表的指定字段内容
tmpAnswer, tmpCodeName := funReadSql(qID)
//读取mysql成功
fmt.Printf("读取mysql成功!!!\ncodeName:%s, answer:%s\n", tmpCodeName, tmpAnswer)
}
func funReadSql(quitionID string) (string, string) {
//打开数据库
db, errOpen := sql.Open("mysql", mysql_user+":"+mysql_passwd+"@tcp("+mysql_ip+":"+mysql_port+")/"+mysql_qyDB+"?charset=utf8")
if errOpen != nil {
//TODO,这里只是打印了一下,并没有做异常处理
fmt.Println("funReadSql Open is error")
}
//读取t_knowledge_tree表中codeName和answer字段
var codeName, answer string
errTables := db.QueryRow("SELECT standerdAsk,answer FROM t_knowledge_tree WHERE codeId=?", quitionID).Scan(&codeName, &answer)
if errTables != nil {
//TODO,这里只是打印了一下,并没有做异常处理
fmt.Println("funReadSql SELECT t_knowledge_tree is error", errTables)
}
fmt.Printf("funReadSql codeName:%s, answer:%s\n", codeName, answer)
//关闭数据库
db.Close()
return answer, codeName
}
5、效果图