gorm CRUD:讀寫資料
阿新 • • 發佈:2020-09-08
- 操作的引數傳入基本都是結構體的指標,同時完成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)