Gin-使用GORM操作mysql 数据库

2023年1月15日10:25:17

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、使用GORM操作mysql 数据库

1、GORM概述

GORM是Golang的一个orm 框架(采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中),功能齐全(具有关联、挂钩(hook)、支持预加载等),对开发者非常友好。

2、Gin 中使用 GORM

### 1、毫无疑问,安装 ``` go get -u gorm.io/gorm

go get -u gorm.io/driver/mysql ``` 如果使用了go mod 的管理,那就不需要了。 他自己会引

go import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" ) ### 2、使用GORM连接数据库

go func init() { //passWord为数据库密码 dsn := "root:passWord@tcp(192.168.0.6:3306)/gin?charset=utf8mb4&parseTime=True&loc=L ocal" DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { fmt.Println(err) } }

3、定义操作数据库的模型

#### 1、声明模型 模型是带有基本Go类型的普通结构,指针/别名,或者实现了Scanner和Valuer接口的自定义类型 ```go type User struct { ID uint Name string Email *string //指针 Age uint8 Birthday *time.Time //日期 MemberNumber sql.NullString ActivatedAt sql.NullTime CreatedAt time.Time

} 注意: 1、结构体的名称必须首字母大写 2、结构体中的字段名称首字母必须大写 3、默认情况表名是结构体名称的复数形式 ```

4、约定( Conventions)

GORM 更喜欢约定而不是配置,默认情况下,GORM 使用ID作为主键,将结构名称复数snake_cases作为表名,snake_case作为列名,并使用CreatedAt,UpdatedAt来跟踪创建/更新时间。

如果遵循 GORM 采用的约定,就会减少很多配置,不遵循的话就要自己配置

5、gorm.Model

GORM 定义了一个gorm.Model结构体,其中包括字段IDCreatedAtUpdatedAt,DeletedAt

go type Model struct { ID uint `gorm:"primaryKey"` CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt `gorm:"index"` } 注意:我们可以将其嵌入到您的结构中以包含这些字段 ### 嵌入式结构

go //使用嵌入式 type User struct { gorm.Model Name string } //相当于(不) type User struct { ID uint `gorm:"primaryKey"` CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt `gorm:"index"` Name string }

如果想了解的更加详细,可以去查看官方文档:https://gorm.io/docs/models.html#embedded_struct

  • 作者:一个月只能改一次欧
  • 原文链接:https://blog.csdn.net/y943711797/article/details/125370690
    更新时间:2023年1月15日10:25:17 ,共 1426 字。