码迷,mamicode.com
首页 > 其他好文 > 详细

GORM增删改查

时间:2021-06-04 19:08:13      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ring   map   增删改查   HERE   ike   删除   first   from   desc   

 

一、增

  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) //查询后的结果

     

 

GORM增删改查

标签:ring   map   增删改查   HERE   ike   删除   first   from   desc   

原文地址:https://www.cnblogs.com/qinghuaL/p/14847750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!