本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1、Gin GORM CURD3
查找
1、查找全部
func (con UserController) Index(c *gin.Context) {
user := []models.User{}
//查找全部
models.DB.Find(&user)
c.JSON(http.StatusOK,
gin.H{
"success": true,
"result": user,
})
}
2、指定条件查找
func (con UserController) Index(c *gin.Context) {
user := []models.User{}
//寻找userName为小燕子的
models.DB.Where("username=?", "小燕子").Find(&user)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": user, })
}
2、修改
func (con UserController) Edit(c *gin.Context) {
//把id=5的数据赋值给user
user := models.User{Id: 5}
//查询
models.DB.Find(&user)
//修改名字和年龄
user.Username = "小名" user.Age = 12
//保存
models.DB.Save(&user)
c.String(http.StatusOK, "Edit")
}
3、删除
1、单条删除
func (con UserController) Delete(c *gin.Context) {
//把id=4的数据赋值给user
user := models.User{Id: 4}
//删除该数据
models.DB.Delete(&user)
c.String(http.StatusOK, "Delete")
}
2、批量删除
//模糊查询含有xiaoming字样的并删除
db.Where("email LIKE ?", "%xiaoming%").Delete(Email{})
// 模糊查询含有xiaofang字样的并删除
db.Delete(Email{}, "email LIKE ?", "%xiaofang%")
// 删除id>9的数据
func (con UserController) DeleteAll(c *gin.Context) {
user := models.User{}
models.DB.Where("id>9").Delete(&user)
c.String(http.StatusOK, "DeleteAll")
}
查询详解
1、id 固定
//寻找id<3的数据
nav := []models.Nav{}
models.DB.Where("id<3").Find(&nav)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
2、id 可变
//声明变量n,一般为获取的值,不会直接声明,为了演示方便
var n = 5
nav := []models.Nav{}
// n代替问号
models.DB.Where("id>?", n).Find(&nav)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
3、and :逻辑运算且,需同时满足
var n1 = 3
var n2 = 9
nav := []models.Nav{}
//时id>3 且 <9
models.DB.Where("id > ? AND id < ?", n1, n2).Find(&nav)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
4、数组,可指定批量数据查找
nav := []models.Nav{}
models.DB.Where("id in (?)", []int{3, 5, 6}).Find(&nav)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
5、模糊查询:%
nav := []models.Nav{}
models.DB.Where("title like ?", "%会%").Find(&nav)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
6、between:在两数之间
nav := []models.Nav{}
models.DB.Where("id between ? and ?", 3, 6).Find(&nav)
c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
7、or 条件:或
nav := []models.Nav{} models.DB.Where("id=? OR id=?", 2, 3).Find(&nav)
nav := []models.Nav{} models.DB.Where("id=?", 2).Or("id=?", 3).Or("id=4").Find(&nav)
8、、选择字段查询
nav := []models.Nav{} models.DB.Select("id, title,url").Find(&nav)
9、