gorm 插入 slice 转换
时间: 2023-07-28 11:28:39 浏览: 168
在 GORM 中,如果你想要插入一个 slice 类型的数据,可以通过将 slice 转换为一个包含多个记录的数组来实现。
举个例子,假设我们有一个 Student
结构体,其中包含一个 hobbies
字段,它是一个字符串切片类型:
type Student struct {
ID uint
Name string
Age int
Hobbies []string
}
现在,我们想要向数据库中插入一个 Student
记录,包含多个 Hobbies
。我们可以使用 gorm.Create()
方法,并将 Hobbies
切片转换为多个 Student
记录,然后插入这些记录:
hobbies := []string{"reading", "swimming", "running"}
students := make([]Student, len(hobbies))
for i, hobby := range hobbies {
students[i] = Student{Name: "John", Age: 20, Hobbies: []string{hobby}}
}
db.Create(&students)
在上面的示例中,我们首先定义了一个 hobbies
切片,然后创建一个包含多个 Student
记录的数组 students
,其中每个记录都包含一个 Hobbies
字段。最后,我们使用 gorm.Create()
方法将这些记录插入到数据库中。
需要注意的是,如果你的 Hobbies
切片很大,这种方法可能会导致性能问题,因为它需要多次插入多个记录。在这种情况下,你可以考虑使用 GORM 的 bulk_insert
扩展,或使用其他数据库技术来提高性能。
相关推荐

















