您的位置:首页 > 博客中心 > 互联网 >

GORM增删改查

时间:2022-05-11 11:47

 

一、增

  1. 单:传入实例即可
        user := &User{Name: "XX"}
        db.Create(user)

     

  2. 列表:
        users := []User{{Name: "xx"},{Name: "XX1"},{Name: "XX2"}}
        db.Create(&users)

     

  3. 字典
        db.Model(&User{}).Create([]map[string]interface{}{{"Name": "WW" },{"Name":"WW1"}})

    Create还有钩子函数:BeforeSaveBeforeCreateAfterSave、AfterCreate

二、删

  1. 单个删除必须带ID,否则会触发批量删除
        user := User{Name: "XX", ID: 1}
        db.Delete(&user)

    id删除

        db.Delete(&User{}, 2)

     

  2. 条件删除
    db.Where( "name = ?" , "XX" ).Delete(&user) 
  3. 批量删除
    db.Delete(User{}, "name LIKE ?" , "%xx%" ) 

    删除的钩子函数:BeforeDeleteAfterDelete

三、改

  1. 根据ID更改
        user := User{ID: 3}
        db.Model(&user).Update("name", "test")
        db.Model(&User{}).Where("id=?", 4).Update("name", "test2")

    Model传的是实例,就可以直接操作,传的是结构体本身的话,需要再加条件之后进行操作,当然传的是实例也可以进一步过滤。

  2. 批量更改
        db.Model(&User{}).Where("name LIKE ?", "test").Update("name", "test2")

    更改的钩子函数: BeforeSaveBeforeUpdateAfterSaveAfterUpdate

四、查

    user := User{}
  1. // 获取按主键排序的第一条记录
    db.First(&user)
  2. // 获取最后一条记录,按主键排序 desc
    db.Last(&user)
  3. 根据ID查询:db.First(&user, 10 )
    // SELECT * FROM users WHERE id = 10;
        user := User{}
        fmt.Print(user)
        db.First(&user)
        fmt.Print(user) //查询后的结果

     

 

本类排行

今日推荐

热门手游