友情提示:此篇文章大约需要阅读 14分钟5秒,不足之处请多指教,感谢你的阅读。 订阅本站
SQLX 库
sqlx
是 Go 的软件包,它在出色的内置database/sql
软件包的基础上提供了一组扩展。
该库兼容sql
原生包,同时又提供了更为强大的、优雅的查询、插入函数。
该库提供四个处理类型,分别是:
sqlx.DB
– 类似原生的sql.DB
;sqlx.Tx
– 类似原生的sql.Tx
;sqlx.Stmt
– 类似原生的sql.Stmt
, 准备 SQL 语句操作;sqlx.NamedStmt
– 对特定参数命名并绑定生成 SQL 语句操作。
提供两个游标类型,分别是:
sqlx.Rows
– 类似原生的sql.Rows
, 从Queryx
返回;sqlx.Row
– 类似原生的sql.Row
, 从QueryRowx
返回。
安装 SQLX 库
go get github.com/jmoiron/sqlx
使用操作
连接数据库
// 初始化数据库
func initMySQL() (err error) {
dsn := "root:password@tcp(127.0.0.1:3306)/database"
db, err = sqlx.Open("mysql", dsn)
if err != nil {
fmt.Printf("connect server failed, err:%v\n", err)
return
}
db.SetMaxOpenConns(200)
db.SetMaxIdleConns(10)
return
}
SetMaxOpenConns
和 SetMaxIdleConns
分别为设置最大连接数和最大空闲数。
数据表达及引用
在这里提前声明一个用户结构体 user
,将 *sqlx.DB
作为一个全局变量使用,当然也要提前引用 MySQL 的驱动包,如下设计:
import (
"fmt"
_ "