一架梯子,一头程序猿,仰望星空!
GORM面试题 > 内容正文

如何定义GORM模型?


问题简答

在GORM中,可以通过定义结构体来定义模型。每个结构体表示一个数据库表。在结构体中,可以把结构体字段和数据库表字段做一一映射。

问题详解:

1.定义模型struct

type User struct {
    // id是表主键
    ID        uint   `gorm:"primary_key"`
    // 通过column指定数据库表名字,不设置会根据struct字段名计算
    Name      string `gorm:"column:name"`
    Email     string `gorm:"unique;not null"`
    Age       int    `gorm:"default:18"`
    CreatedAt time.Time
    UpdatedAt time.Time
    DeletedAt *time.Time
}

2.定义模型表名

通过TableName函数返回一个当前模型绑定的表名字

func (User) TableName() string {
    return "users"
}

3.添加数据

// 通过struct设置属性
user := &User{Name: "John", Email: "john@example.com", Age: 21}
// 添加数据
db.Create(user)

4.查询数据

var user User
// 查询name = "tizi365"的数据,保存到user
db.Where("name = ?", "tizi365").First(&user)