Go 语言学习手册
免费学习
完整知识体系
快速检索
Go语言学习手册《database/sql 与 ORM》:Go 标准库 `database/sql` 提供了通用的 SQL 数据库接口,配合驱动使用。 **安装驱动(以 MySQL 为例):** ```bash go get -u github.com/go-sql-driver/mysql `...
数据库操作
database/sql 与 ORM
【详细说明 & 代码示例】
Go 标准库 `database/sql` 提供了通用的 SQL 数据库接口,配合驱动使用。
**安装驱动(以 MySQL 为例):**
```bash
go get -u github.com/go-sql-driver/mysql
```
**连接数据库:**
```go
import "database/sql"
import _ "github.com/go-sql-driver/mysql"
dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := sql.Open("mysql", dsn)
if err != nil { ... }
defer db.Close()
// 测试连接
err = db.Ping()
```
**执行查询:**
```go
var id int
var name string
err = db.QueryRow("SELECT id, name FROM users WHERE id=?", 1).Scan(&id, &name)
rows, err := db.Query("SELECT id, name FROM users")
defer rows.Close()
for rows.Next() {
var id int
var name string
rows.Scan(&id, &name)
// 处理
}
```
**执行插入/更新:**
```go
result, err := db.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
id, _ := result.LastInsertId()
affected, _ := result.RowsAffected()
```
**ORM(对象关系映射):** 如 GORM、Ent。
```go
// GORM 示例
type User struct {
ID uint
Name string
}
db.Create(&User{Name: "Alice"})
```
**注意:** 使用 `defer rows.Close()` 释放资源,避免连接泄漏。
学习提示:建议安装 Go 环境(go.dev/dl),使用 VS Code 或 GoLand 编写代码,并熟练使用 go run、go build、go mod 等命令。
全部章节目录(共 30 个知识点)
Go 基础 (1个知识点)
变量与数据类型 (2个知识点)
控制流程 (2个知识点)
结构体与方法 (2个知识点)
接口(interface) (1个知识点)
指针 (1个知识点)
错误处理 (1个知识点)
包管理 (1个知识点)
并发:goroutine (1个知识点)
并发:channel (1个知识点)
同步原语 (1个知识点)
标准库 (2个知识点)
网络与 HTTP (1个知识点)
测试与性能 (1个知识点)
反射与泛型 (1个知识点)
CGO 与汇编 (1个知识点)
Web 框架 (1个知识点)
数据库操作 (1个知识点)
配置与日志 (1个知识点)
部署与运维 (1个知识点)
设计模式 (2个知识点)
进阶技巧 (2个知识点)
使用说明
- • 本手册涵盖 Go 语言从基础到并发实战、Web 服务的完整知识体系
- • 在搜索框输入关键词,快速定位相关知识点
- • 点击条目标题进入详情页,查看详细说明与代码示例
- • 页面按分类展示所有知识点,方便系统性学习
- • 建议安装 Go 环境并使用 VS Code 或 GoLand 进行实践