Go语言操作MySQL数据库
本文主要介绍了Go语言如何操作MySQL数据库。
关键词:golang
连接
sql包提供了保证SQL或类SQL数据库的泛用接口。
使用sql包时必须注入(至少)一个数据库驱动。参见http://golang.org/s/sqldrivers 获取驱动列表。
更多用法示例,参见wiki页面:http://golang.org/s/sqlwiki。
这里使用github.com/go-sql-driver/mysql/作为MySQL的驱动。
下载依赖
1 | go get -u github.com/go-sql-driver/mysql |
初始化链接
1 | func Open(driverName, dataSourceName string) (*DB, error) |
返回的DB类型可用被多个goroutine同时使用,只需要创建一次,很少需要关闭这个对象;
Open函数只验证参数格式是否正确,不创建数据库的连接,无法验证密码是否正确;
一般设置成全局变量,一次初始化然后整个模块使用
1 | import ( |
验证用户名和密码是否正确
1 | func (db *DB) Ping() error |
- 验证数据库是否可用
- 如果必要的话建立一个连接
设置最大连接数
1 | func (db *DB) SetMaxOpenConns(n int) |
- 设置数据库最大连接数
- 如果n > 0且小于最大闲置连接数,则会将最大闲置连接数减少到匹配开启最大连接数的限制
- 如果n <= 0(默认值),不会限制最大开启连接数限制
设置最大闲置连接数
1 | func (db *DB) SetMaxIdleConns(n int) |
- 设置数据库最大闲置连接数
- 如果n 大于最大连接数,则新的最大闲置连接数会减少到最大连接数
- 如果n <= 0,则不会保持闲置连接,默认值为2