1. 程式人生 > 實用技巧 >gorm CRUD:讀寫資料

gorm CRUD:讀寫資料

  • 操作的引數傳入基本都是結構體的指標,同時完成CURD後,指標指向的結構體資料也將隨著更新

1 建立

type User struct {
    ID   int64
    Name string `gorm:"default:'galeone'"`
    Age  int64
}

var user= User{Age: 99, Name: ""}
db.Create(&user)

注意

  • 通過tag,定義宣告建立資料時,欄位的預設值

2 查詢

// 獲取所有記錄
db.Find(&users)
//// SELECT * FROM users;

// 獲取第一條記錄,按主鍵排序
db.First(&user)
//// SELECT * FROM users ORDER BY id LIMIT 1;

// 獲取最後一條記錄,按主鍵排序
db.Last(&user)
//// SELECT * FROM users ORDER BY id DESC LIMIT 1;

// 使用主鍵獲取記錄
db.First(&user, 10)
//// SELECT * FROM users WHERE id = 10;

2.1 where

// 獲取第一個匹配記錄
db.Where("name = ?", "jinzhu").First(&user)
//// SELECT * FROM users WHERE name = 'jinzhu' limit 1;

// 獲取所有匹配記錄
db.Where("name = ?", "jinzhu").Find(&users)
//// SELECT * FROM users WHERE name = 'jinzhu';

db.Where("name <> ?", "jinzhu").Find(&users)

// IN
db.Where("name in (?)", []string{"jinzhu", "jinzhu 2"}).Find(&users)

// LIKE
db.Where("name LIKE ?", "%jin%").Find(&users)

// AND
db.Where("name = ? AND age >= ?", "jinzhu", "22").Find(&users)

// Time
db.Where("updated_at > ?", lastWeek).Find(&users)

db.Where("created_at BETWEEN ? AND ?", lastWeek, today).Find(&users)