Gin使用GORM进行CURD3

171 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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、