gin_gorm

gorm

gin

restful风格:指的是网络应用中就是资源定位和资源操作风格,不是标准也不是协议

form参数接收类型:form-data ,x-www-urlencoded,application/x-www-form-urlencoded

请求方式对比:PUT 和 PATCH

PUT:在服务器更新资源(客户端提供完整资源数据)

PATCH:在服务器更新资源(客户端提供需要修改的资源数据)

请求头:

sqlx 是Go语言中一个流行的数据库操作库,它构建在Go标准库 database/sql 之上,为数据库交互提供了更便捷、高效和功能丰富的方式。以下是对 sqlx 库的详细介绍:

sqlx

1. 简化 SQL 查询

  • 命名参数查询sqlx 支持使用命名参数进行 SQL 查询,这使得 SQL 语句更易读和维护。相比标准库中使用 ? 占位符,命名参数更加直观。例如:
go 复制代码
var id int
err := db.Get(&id, "SELECT id FROM users WHERE name = :name", sql.Named("name", "John"))
  • 结构体映射sqlx 可以方便地将查询结果直接映射到结构体。假设你有一个 User 结构体:
go 复制代码
type User struct {
    ID   int    `db:"id"`
    Name string `db:"name"`
}

var user User
err := db.Get(&user, "SELECT id, name FROM users WHERE id =?", 1)

这里 sqlx 根据结构体字段上的 db 标签将查询结果映射到 User 结构体实例。

2. 批量操作

  • 批量插入sqlx 提供了方便的批量插入方法。例如,你有一个用户切片,想一次性插入到数据库:
go 复制代码
users := []User{
    {Name: "Alice"},
    {Name: "Bob"},
}
_, err := db.NamedExec("INSERT INTO users (name) VALUES (:name)", users)

这种方式减少了多次数据库往返,提高了插入效率。

3. 连接池管理

sqlx 基于 database/sql 的连接池机制,无需额外配置即可使用连接池。这意味着在高并发场景下,sqlx 可以有效地管理数据库连接,复用连接资源,提升应用性能。例如,在创建数据库连接时:

go 复制代码
db, err := sqlx.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database_name")
if err!= nil {
    log.Fatal(err)
}
defer db.Close()

4. 灵活性与兼容性

  • 支持多种数据库sqlx 支持多种关系型数据库,如 MySQL、PostgreSQL、SQLite 等。无论是哪种数据库,使用 sqlx 的基本模式相似,使得在不同数据库间切换时成本较低。
  • 与标准库兼容 :由于 sqlx 构建在 database/sql 之上,它与标准库的接口保持兼容。这意味着你可以在使用 sqlx 的同时,仍然使用标准库的一些特性,并且可以很容易地将现有的基于 database/sql 的代码迁移到 sqlx
相关推荐
有浔则灵1 天前
Gin框架参数绑定与校验:从入门到精通
gin
必胜刻1 天前
Gin + WebSocket 连接池
websocket·网络协议·gin
不会聊天真君6474 天前
介绍(gin笔记第一期)
笔记·gin
ZHENGZJM5 天前
Server-Sent Events (SSE) 接口实现
架构·go·gin
ZHENGZJM5 天前
统一响应封装与 API 错误处理
react.js·go·gin
ZHENGZJM5 天前
仓库抓取与内容提取
go·gin
GDAL7 天前
gin.H 深入全面讲解
gin·h
呆萌很7 天前
【Gin】参数处理练习题
gin
GDAL7 天前
gin.Default() 深入全面讲解
golang·go·gin
GDAL8 天前
为什么选择gin?
golang·gin