GORM 是一个功能强大的 Go 语言 ORM 库,它提供了简单易用的 API 来执行数据库操作。本文将介绍如何使用 GORM 进行单条记录插入和批量插入操作。
单条记录插入
在 GORM 中,插入一条记录非常简单。首先,你需要定义一个模型,该模型对应数据库中的一个表。然后,使用 Create
方法将记录插入到数据库中。
package main
import (
"fmt"
)
// Student 模型定义
type Student struct {
Id uint `gorm:"size:10"`
Name string `gorm:"size:16"`
Age int `gorm:"size:3"`
Gender bool `gorm:"default:true"`
Email *string `gorm:"size:128"`
}
func main() {
// 省略了数据库连接和自动迁移的代码
// 创建学生记录
email := "123@qq.com"
s1 := Student{
Name: "zhangsan",
Age: 21,
Gender: true,
Email: &email,
}
// 插入记录到数据库
err := DB.Create(&s1).Error
if err != nil {
fmt.Println("Error occurred while creating record:", err)
} else {
fmt.Printf("Student record created: %+v\n", s1)
}
}
批量插入
GORM 也支持批量插入操作,这在需要插入多条记录时非常有用。你可以创建一个模型的切片,然后使用 Create
方法一次性插入所有记录。
// 创建学生记录列表
studentList := []Student{}
for i := 0; i < 10; i++ {
studentList = append(studentList, Student{
Name: fmt.Sprintf("测试%d", i),
Age: 21,
Gender: true,
Email: nil,
})
}
// 批量插入记录到数据库
err = DB.Create(&studentList).Error
if err != nil {
fmt.Println("Error occurred while creating records:", err)
} else {
fmt.Println("Batch records created successfully.")
}
注意事项
- 指针字段:对于可能为
NULL
的字段,使用指针类型(如*string
)。 - 默认值:使用
gorm:"default:value"
标签为字段指定默认值。 - 错误处理:在使用
Create
方法后,始终检查Error
属性以处理可能发生的错误。
总结
GORM 提供了一种非常直观的方式来插入数据,无论是单条记录还是批量插入。通过上述示例,你应该能够理解如何在 GORM 中执行这些操作。记得在使用 GORM 进行数据库操作时,始终进行错误检查以确保程序的健壮性。