高能预警
- 本文的绝大部分内容来自于 Gorm官方文档,默认读者了解Gorm库
- 本文基于Gorm v2版本,敬请读者朋友们对应食用~
正文
- 我们在后台处理数据库一对多的关系时,当然希望“多”的这部分部分数据乖乖的存放在数组中。在Gorm库中已经为我们提供了预加载(Preload()方法)来解决这个问题,本文将带领大家快速上手。请君继续阅读。
数据结构体
- 这里说明一下,我们使用结构体嵌套的这种方式,并不会对Gorm创建的数据库产生影响,即它不会把下面的
Orders []Order
解析成字段,更不会自动创建外键(这里可以使用gorm的 标签 来实现更高级的数据库操作),现在想想还是很便捷的。
`源自官网示例`
type User struct {
Id int
Username string
Orders []Order
}
type Order struct {
Id int
UserID uint
Price float64
}
初始化表 & 创建数据
func main() {
dsn := "root:123456@(127.0.0.1:3306)/优快云?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn),