创建表
1 | DROP TABLE IF EXISTS `t_user`; |
实体类
1 | package model |
下载依赖
1 | go get github.com/go-sql-driver/mysql |
工具类
db/mydb.go
1 | package mydb |
增删改查
基本
1 | package dao |
分页和筛选
1 | // ArticleListByManager 查询列表 |
调用
1 | mydb.OpenDB() |
其中
- Get 查询单条数据
- Select 查询多条数据
注意
defer 语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语句按 defer 的逆序进行执行,
也就是说,先被 defer 的语句最后被执行,最后被 defer 的语句,最先被执行。
连接池的实现关键在于SetMaxOpenConns和SetMaxIdleConns,其中:
SetMaxOpenConns用于设置最大打开的连接数,默认值为0表示不限制。
SetMaxIdleConns用于设置闲置的连接数。
设置最大的连接数,可以避免并发太高导致连接mysql出现too many connections的错误。
设置闲置的连接数则当开启的一个连接使用完成后可以放在池里等候下一次使用。