使用db.Create批量添加数据
package main
import (
gorm "github.com/zhangdapeng520/zdpgo_gorm"
"github.com/zhangdapeng520/zdpgo_gorm/mysql"
)
type User struct {
Id int `gorm:"primary_key"`
Name string
Age 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 main
import (
"fmt"
gorm "github.com/zhangdapeng520/zdpgo_gorm"
"github.com/zhangdapeng520/zdpgo_gorm/mysql"
)
type User struct {
Id int `gorm:"primary_key"`
Name string
Age 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 []User
for i := 0; i < 10000; i++ {
users = append(users, User{
Name: fmt.Sprintf("张三%d", i),
Age: 20 + i%10,
})
}
db.CreateInBatches(&users, 100)
}