package main
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
//创建映射结构体
type User struct {
//gorm.Model框架自带的结构体
gorm.Model
Name string
Age int64
}
func main() {
//连接数据库
db, err := gorm.Open("mysql", "root:123456@(localhost:3306)/db01?charset=utf8mb4&parseTime=True&loc=Local")
if err != nil {
fmt.Println("open err:", err)
return
}
//关闭连接
defer db.Close()
//与数据表进行关联
//db.AutoMigrate(&User{})
//创建数据
//user := User{Name: "小明", Age: 15}
//db.Create(&user)
//user1 := User{Name: "小红", Age: 16}
//db.Create(&user1)
//定义一个结构体变量用于接收数据
var u User
//查询数据库的数据第一条记录
db.First(&u)
fmt.Println("第一条记录为:",u)
//随机获取一条记录
var u1 User
db.Take(&u1)
fmt.Println("随机数据为:",u1)
//查询最后一条记录
var u2 User
db.Last(&u2)
fmt.Println("最后一条数据为:",u2)
//查询所有数据
var u3 []User
db.Find(&u3)
fmt.Println("所有的数据为:",u3)
//指定查询的数据(根据主键)
var u4 User
db.First(&u4,1)
fmt.Println("根据主键id查询的数据为:",u4)
//条件查询第一条记录
var u5 User
db.Where("name = ?","小明").First(&u5)
fmt.Println("根据名字查询的第一条记录:",u5)
//条件查询所有记录 <>不等于
var u6 []User
db.Where("name<>?","小明").Find(&u6)
fmt.Println("查询所有的记录为:",u6)
//条件查询所有记录 in
var u7 []User
db.Where("name IN(?)",[]string{"小明"}).Find(&u7)
fmt.Println("查询所有为条件的记录:",u7)
//条件模糊查询
var u8 []User
db.Where("name like ?","%小明%").Find(&u8)
fmt.Println("模糊查询的记录为:",u8)
//and
var u9 []User
db.Where("name = ? and age < ?","小红","22").Find(&u9)
fmt.Println("查询条件范围内的为:",u9)
//结构体查询
var u10 []User
db.Where(&User{Name: "小明",Age: 15}).Find(&u10)
fmt.Println("根据结构体查询的数据为:",u10)
//map查询
var u11 []User
db.Where(map[string]interface{}{"name":"小红","age":16}).Find(&u11)
fmt.Println("map查询的结果为:",u11)
//切片查询,根据主键id
var u12 []User
db.Where([]int64{1,2}).Find(&u12)
fmt.Println("切片查询的结果为:",u12)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)