Skip to content

第五章 数据库操作 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)
}