使用db.Create批量添加数据
package mainimport (gorm "github.com/zhangdapeng520/zdpgo_gorm""github.com/zhangdapeng520/zdpgo_gorm/mysql"
)type User struct {Id int `gorm:"primary_key"`Name stringAge int
}func main() {// 账号:密码@tcp(IP地址:端口号)/数据库名dsn := "root:root@tcp(127.0.0.1:3306)/zdpgo_gorm"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})if err != nil {panic(err)}users := []User{{Name: "李四1",Age: 24,},{Name: "李四2",Age: 24,},{Name: "李四3",Age: 24,},}db.Create(&users)
}
使用db.CreateInBatches批量新增数据
这个方法比较适合非常大批量的新增数据,第二个参数size是一个整数,用来控制每次被写入数据库的数据数量。
package mainimport ("fmt"gorm "github.com/zhangdapeng520/zdpgo_gorm""github.com/zhangdapeng520/zdpgo_gorm/mysql"
)type User struct {Id int `gorm:"primary_key"`Name stringAge int
}func main() {// 账号:密码@tcp(IP地址:端口号)/数据库名dsn := "root:root@tcp(127.0.0.1:3306)/zdpgo_gorm"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})if err != nil {panic(err)}var users []Userfor i := 0; i < 10000; i++ {users = append(users, User{Name: fmt.Sprintf("张三%d", i),Age: 20 + i%10,})}db.CreateInBatches(&users, 100)
}