Golang 操作Mysql总结
前言:
此文写在刚起步学习Golang,目前刚看到Go/mysql 这一块,初步使用后,发现了一些小坑,记录一下,以免日后再次在这一块踩坑了。学习文章参考于Go语言学习之路|李文周的博客,这一篇博客写的非常好,十分适合初步学习Go或者刚转型Go的朋友进行学习。
本地环境
本地计算机环境的GOPATH为 E:\GoProjects,可以在Goland的setting中设置项目的GOPATH
而本项目的GOPATH为 E:\GoProjects\filestore-server
在项目目录下建立bin、pkg、src三个文件夹,然后源码放于src中。 要注意设置好GOPATH,不然下载驱动的时候,会找不着驱动的。
1、下载驱动
Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。
我们常用的数据库基本上都有完整的第三方实现。例如:MySQL驱动
E:\GoProjects\filestore-server> go get -u github.com/go-sql-driver/mysql
注:使用go get 要注意本地环境变量中设置的GOPATH的位置。go get下来的文件会下载到GOPATH位置中的pkg文件夹和src文件夹。
.
2、建立数据库连接对象
sql.Open打开一个dirverName指定的数据库,dataSourceName指定数据源,一般至少包括数据库文件名和其它连接必要的信息。
func Open(driverName, dataSourceName string) (*DB, error)
Open函数可能只是验证其参数格式是否正确,实际上并不创建与数据库的连接。如果要检查数据源的名称是否真实有效,应该调用Ping方法。
返回的DB对象可以安全地被多个goroutine并发使用,并且维护其自己的空闲连接池。因此,Open函数应该仅被调用一次,很少需要关闭这个DB对象。
package mysql
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"os"
)
var db *sql.DB // 定义全局对象db
func init() {
db,err = sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/fileserver?charset=utf8")
//sql.Open("mysql","(账号):(密码)@tcp(mysql地址和端口)/(数据库名称)?charset=utf8")
if err !=