type User struct{
gorm.Model
Name string
Age int
Birthday time.Time
}
初始化连接数据库
var db *gorm.DB
funcinit(){
dsn :="root:root@tcp(127.0.0.1:3306)/go_orm?charset=utf8mb4&parseTime=True&loc=Local"
d, err := gorm.Open(mysql.Open(dsn),&gorm.Config{})if err !=nil{
log.Fatal(err)}
db = d
}
获取第一条记录(主键升序)
funcselect1(){var user User
// 获取第一条记录(主键升序)
db.First(&user)
fmt.Printf("user: %v\n", user)
fmt.Printf("user.ID: %v\n", user.ID)}
获取一条记录,没有指定排序字段
funcselect2(){var user User
// 获取一条记录,没有指定排序字段
db.Take(&user)
fmt.Printf("user: %v\n", user)
fmt.Printf("user.ID: %v\n", user.ID)}
获取最后一条记录(主键降序)
funcselect3(){var user User
// 获取最后一条记录(主键降序)
db.Last(&user)
fmt.Printf("user: %v\n", user)
fmt.Printf("user.ID: %v\n", user.ID)}
用主键检索
funcselect4(){var user User
// SELECT * FROM users WHERE id = 5;
db.First(&user,5)
fmt.Printf("user: %v\n", user)
fmt.Printf("user.ID: %v\n", user.ID)}funcselect5(){var user User
// SELECT * FROM users WHERE id = 5;
db.First(&user,"5")
fmt.Printf("user: %v\n", user)
fmt.Printf("user.ID: %v\n", user.ID)}funcselect6(){var users []User
// SELECT * FROM users WHERE id IN (1,2,3);
db.Find(&users,[]int{1,2,3})for_, user :=range users {
fmt.Printf("user.ID: %v\n", user.ID)}}
检索全部对象
funcselect7(){var users []User
result := db.Find(&users)
fmt.Printf("result.RowsAffected: %v\n", result.RowsAffected)}
查询官方文档只写了简单的查询,可以去官方看看负责的查询.导入的包import ( "fmt" "log" "time" "gorm.io/driver/mysql" "gorm.io/gorm")用户结构体type User struct { gorm.Model Name string Age int Birthday time.Time}初始化连接数据库var db *gorm.DBfunc init() { dsn := "root: