Gorm样例
基础
package main
import (
"fmt"
"math/rand"
"strconv"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type People struct {
Name string
Age uint
}
// 实现接口 定义表名
func (p People) TableName() string {
return "ppp"
}
func main() {
dsn := "root:SHILIub99325@tcp(127.0.0.1:3307)/go_database?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn),&gorm.Config{
Logger:logger.Default.LogMode(logger.Info), //设置log的模式
})
if err != nil {
fmt.Println("failed to connect database.")
}
// 迁移 schema | 如果没有表会自动创建
db.AutoMigrate(&People{})
var peoples []People
db.Create(&People{Name: "小明", Age: 12890}) //插入
for i := 0; i < 5; i++ {
name := strconv.Itoa(i)
rand.Seed(int64(i))
age := rand.Intn(100)
peoples = append(peoples, People{Name: name, Age: uint(age)})
}
db.Create(peoples) //切片
var people People
db.First(&people, 1)
fmt.Printf("%v\n", people) // 根据整型主键查找
}