发布时间:2024-11-05 17:19:37
在 Golang 开发中,GORM 是一款非常流行的对象关系映射(Object Relational Mapping)库。它提供了方便的数据库操作功能,并且支持丰富的标签语法,用于定义结构体字段与数据库表的映射关系。
这个标签用于指定某个字段作为主键。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string
Password string
}
上述代码中,ID 字段被标记为主键。
这个标签用于指定字段对应的数据库列名。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey;column:user_id"`
Username string
Password string
}
上述代码中,ID 字段对应的数据库列名被指定为 user_id。
这个标签用于指定某个时间字段在创建时自动生成时间戳。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string
Password string
CreatedAt time.Time `gorm:"autoCreateTime"`
}
上述代码中,CreatedAt 字段在创建时会自动填充当前时间。
这个标签用于指定某个时间字段在更新时自动更新时间戳。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string
Password string
UpdatedAt time.Time `gorm:"autoUpdateTime"`
}
上述代码中,UpdatedAt 字段在更新时会自动更新为当前时间。
这个标签用于指定某个字段创建唯一索引。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string `gorm:"uniqueIndex"`
Password string
}
上述代码中,Username 字段创建了一个唯一索引。
这个标签用于指定某个字段不为空。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string `gorm:"not null"`
Password string
}
上述代码中,Username 字段被设置为非空。
这个标签用于指定某个字段对应的数据库数据类型。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string `gorm:"type:varchar(100)"`
Password string
}
上述代码中,Username 字段被指定为 varchar(100) 类型。
这个标签用于指定某个字段的默认值。例如:
type User struct {
gorm.Model
ID uint `gorm:"primaryKey"`
Username string `gorm:"default:'guest'"`
Password string
}
上述代码中,Username 字段的默认值被指定为 "guest"。
通过使用这些 GORM 标签,我们可以灵活地定义结构体字段与数据库表的映射关系,并且减少了手动编写大量的 CRUD 操作代码的工作量。