Go操作mysql实现增删改查及连接池

本文介绍了如何在Go中使用第三方库Go-SQL-Driver/MySQL进行MySQL的增删改查操作,并讨论了数据库连接池的使用,强调了sql.Open返回的是连接池对象而非单一连接。文中给出了完整的代码示例,包括创建数据库连接、设置最大打开和闲置连接数等,并通过网络服务演示了连接池的效果。文章最后提到了数据库连接超时的问题及其对连接池的影响。
摘要由CSDN通过智能技术生成

golang本身没有提供连接的MySQL的驱动,但是定义了标准接口供第三方开发驱动。这里连接的MySQL可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动,更新维护都比较好。下面演示下具体的使用,完整代码示例可以参考最后。

下载驱动

sudo go get github.com/go-sql-driver/mysql

如果提示这样的失败信息:无法下载,$ GOPATH未设置。有关详细信息,请参阅:go help gopath,可以使用如下命令解决

sudo env GOPATH=/Users/chenjiebin/golang go get github.com/go-sql-driver/mysql

GOPATH的值根据自行环境进行替换。

创建测试表

在mysql test库中创建测试表

CREATE TABLE IF NOT EXISTS `test`.`user` (
 `user_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户编号',
 `user_name` VARCHAR(45) NOT NULL COMMENT '用户名称',
 `user_age` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户年龄',
 `user_sex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户性别',
 PRIMARY KEY (`user_id`))
 ENGINE = InnoDB
 AUTO_INCREMENT = 1
 DEFAULT CHARACTER SET = utf8
 COLLATE = utf8_general_ci
 COMMENT = '用户表'

数据库连接

数据库连接使用datebase / sql打开函数进行连接

db, err := sql.Open("mysql", "user:password@tcp(localhost:5555)/dbname?charset=utf8")

其中连接参数可以有如下几种形式:

user @ unix(/ path / to / socket)/ dbname?charset = utf8
user:password @ tcp(localhost:5555)/ dbname?charset = utf8
user:password @ / dbname
user:password @ tcp([de:ad:是:EF :: CA:FE]:80)/ DBNAME</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值