本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1、Gin GORM CURD3
查找
1、查找全部
go 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、指定条件查找
go 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、修改
go 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、单条删除 go 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、批量删除
```go //模糊查询含有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 固定 ```go //寻找id<3的数据 nav := []models.Nav{}
models.DB.Where("id<3").Find(&nav) c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, }) 2、id 可变
go //声明变量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 :逻辑运算且,需同时满足
go 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、数组,可指定批量数据查找 go 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、模糊查询:%
go nav := []models.Nav{} models.DB.Where("title like ?", "%会%").Find(&nav) c.JSON(http.StatusOK, gin.H{ "success": true, "result": nav, })
6、between:在两数之间 go 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 条件:或
go nav := []models.Nav{} models.DB.Where("id=? OR id=?", 2, 3).Find(&nav)
go nav := []models.Nav{} models.DB.Where("id=?", 2).Or("id=?", 3).Or("id=4").Find(&nav)
8、、选择字段查询
go nav := []models.Nav{} models.DB.Select("id, title,url").Find(&nav)
9、