gin 文档 gorm 文档 及教程
发布人:shili8
发布时间:2025-03-04 17:20
阅读次数:0
**Gin 框架文档**
###什么是 Gin?
Gin 是一个高性能的 Go 框架,用于构建 API。它提供了一个简单、灵活且易于使用的 API 构建工具。
### 特点* 高性能:Gin 使用了零拷贝技术和缓存来实现高性能。
* 轻量级:Gin 的代码量非常少,仅有3KB。
* 灵活:Gin 支持多种路由方式,包括路径、查询参数等。
### 安装要使用 Gin,需要先安装它:
bashgo get -u github.com/gin-gonic/gin
### 基本示例下面是一个基本的 Gin 示例:
gopackage mainimport ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() // GET / - 从根目录获取数据 router.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "这是一个基本的 Gin 示例", }) }) // POST /user - 创建新用户 router.POST("/user", func(c *gin.Context) { var user struct { Name string `json:"name"` Email string `json:"email"` } // 从 JSON 中解析数据 if err := c.BindJSON(&user); err != nil { c.JSON(400, gin.H{"error": "无法解析 JSON"}) return } // 创建新用户 c.JSON(201, gin.H{ "message": "创建成功", "user": user, }) }) router.Run(":8080") }
### 路由Gin 支持多种路由方式,包括:
* **路径**:使用 `router.GET("/path", func(c *gin.Context) {...})` 等函数来定义路由。
* **查询参数**:使用 `router.GET("/path/:param", func(c *gin.Context) {...})` 等函数来定义路由。
* **正则表达式**:使用 `router.GET("/path/*regex", func(c *gin.Context) {...})` 等函数来定义路由。
### 中间件Gin 支持多种中间件,包括:
* **日志记录**:使用 `gin.Logger()` 来记录请求信息。
* **缓存**:使用 `gin.Cache()` 来实现缓存功能。
* **认证**:使用 `gin.Auth()` 来实现认证功能。
### GORM 文档###什么是 GORM?
GORM 是一个 Go ORM 框架,用于与数据库进行交互。它提供了一个简单、灵活且易于使用的 API。
### 特点* **高性能**:GORM 使用了缓存和预加载来实现高性能。
* **轻量级**:GORM 的代码量非常少,仅有10KB。
* **灵活**:GORM 支持多种数据库驱动,包括 MySQL、PostgreSQL 等。
### 安装要使用 GORM,需要先安装它:
bashgo get -u gorm.io/gorm
### 基本示例下面是一个基本的 GORM 示例:
gopackage mainimport ( "gorm.io/driver/mysql" "gorm.io/gorm" "log" ) func main() { dsn := "user:password@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True" // 连接数据库 db, err := gorm.Open(mysql.New(mysql.Config{ DSN: dsn, DSNDriverName: "mysql", EnableAutoMigrate: true, }), &gorm.Config{}) if err != nil { log.Fatal(err) } // 定义模型 type User struct { gorm.Model Name string Email string } // 创建表 db.AutoMigrate(&User{}) // 插入数据 user := &User{ Name: "John Doe", Email: "john@example.com", } db.Create(user) }
### 模型GORM 支持多种模型,包括:
* **结构体**:使用 `type User struct {...}` 来定义模型。
* **接口**:使用 `type User interface {...}` 来定义模型。
### 查询GORM 支持多种查询方式,包括:
* **查找**:使用 `db.Find(&users)` 来查找数据。
* **查找一个**:使用 `db.First(&user)` 来查找一个数据。
* **更新**:使用 `db.Model(&user).Update("name", "Jane Doe")` 来更新数据。
### GORM 教程下面是一个 GORM 教程:
#### 安装要使用 GORM,需要先安装它:
bashgo get -u gorm.io/gorm
#### 基本示例下面是一个基本的 GORM 示例:
gopackage mainimport ( "gorm.io/driver/mysql" "gorm.io/gorm" "log" ) func main() { dsn := "user:password@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True" // 连接数据库 db, err := gorm.Open(mysql.New(mysql.Config{ DSN: dsn, DSNDriverName: "mysql", EnableAutoMigrate: true, }), &gorm.Config{}) if err != nil { log.Fatal(err) } // 定义模型 type User struct { gorm.Model Name string Email string } // 创建表 db.AutoMigrate(&User{}) // 插入数据 user := &User{ Name: "John Doe", Email: "john@example.com", } db.Create(user) }
#### 模型GORM 支持多种模型,包括:
* **结构体**:使用 `type User struct {...}` 来定义模型。
* **接口**:使用 `type User interface {...}` 来定义模型。
#### 查询GORM 支持多种查询方式,包括:
* **查找**:使用 `db.Find(&users)` 来查找数据。
* **查找一个**:使用 `db.First(&user)` 来查找一个数据。
* **更新**:使用 `db.Model(&user).Update("name", "Jane Doe")` 来更新数据。
#### GORM 中间件GORM 支持多种中间件,包括:
* **日志记录**:使用 `gorm.Logger()` 来记录请求信息。
* **缓存**:使用 `gorm.Cache()` 来实现缓存功能。
* **认证**:使用 `gorm.Auth()` 来实现认证功能。
#### GORM 错误处理GORM 支持多种错误处理方式,包括:
* **自定义错误**:使用 `gorm.Error()` 来创建自定义错误。
* **捕获错误**:使用 `defer` 关键字来捕获错误。
以上就是关于 Gin 框架、GORM ORM 框架和 GORM 教程的文档。