Gorm 常用操作整理
发表于|更新于
|字数总计:239|阅读时长:1分钟|阅读量:
环境说明
- gorm gorm.io/gorm
- go go1.16.2
- gorm v2
步骤说明
注:这里使用的是gorm v2
区别:
// v2
import "gorm.io/gorm"
// v1
import "github.com/jinzhu/gorm"
增
// AddMember func (d *Dao) AddMember(member *model.Member) error { return d.ORM.Table(member.TableName()).Create(member).Error }
|
事务新增
// TxAddMember func (d *Dao) TxAddMembert(tx *gorm.DB, member *member.Member) error { return tx.Table(member.TableName()).Create(member).Error }
|
删
//DeleteMember func (d *Dao) DeleteMember(id int64) error { return d.ORM.Delete(&model.Member{}, id).Error }
|
改
d.ORM.Model(&Member).Update("nickname":"axin")
查
d.ORM.Model(&Member).Where("id = ?", id).First(&member)
判断记录是否存在
oldMember, err := s.dao.GetMemberById(member.Id) if errors.Is(err, gorm.ErrRecordNotFound) { // 不存在 插入数据 // do something } else { // 存在 更新数据 // do something }
if err != nil { panic(err) }
// GetMemberById func (d *Dao) GetMemberById(Id int64) (*model.Member, error) { member := &model.Task{} err := d.ORM.Table(member.TableName()).Where("id = ?", Id).First(member).Error if err != nil { return member, err } return member, nil }
|
参考文献
官方文档
错误处理