第五章 数据库操作 v1.0
第一部分 Database/sql的使用
一、初始化
1.安装
go
go mod init moduleName // 初始化module
go get -u github.com/go-sql-driver/mysql // 使用go-sql-driver/mysql软件包2.官方教程
https://github.com/go-sql-driver/mysql
3.引入软件包代码
go
import (
"database/sql"
_ "github.com/go-sql-driver/mysql" //_表示副作用引入
)二、连接与关闭连接
1.连接
go
db, err = sql.Open("mysql", "user:passwd@tcp(ip:3306)/database?charset=utf8")
db.SetMaxOpenConns(20) // 待了解
db.SetMaxIdleConns(10) // 待了解
db.SetConnMaxLifetime(time.Hour) // 待了解2.关闭连接
db.Close()
三、执行SQL语句
1.查询
go
sqlStatement := `SELECT * FROM Table WHERE id = ?;` // 示例
stmt, err := db.Prepare(sqlStatement) // 准备执行
rows, err := stmt.Query(id) // 将id替换占位符"?"并执行查询
defer rows.Close() // 执行后释放查询
for rows.Next() { // rows.Next()返回bool类型值,代表是否有下一条消息
var u User // 自定义结构体
err := rows.Scan(&u.Id, &u.Name) // 扫描行并赋值给对应值
}2.插入/删除/修改
go
sqlStatement := sql // 使用占位符为?的SQL语句
stmt, err := db.Prepare(sqlStatement)
_, err = stmt.Exec(...)
if err != nil {
return fmt.Errorf("execute error: %s", err)
}