// 自动迁移模式db.AutoMigrate(&Product{})
查询
var product Productdb.First(&product, 1) // 查询id为1的productdb.First(&product, "code = ?", "ik01001") // 查询code为l1212的product
插入
// 创建db.Create(&Product{Code: "ik01001", Price: 1000})
构造已给对象,直接调用 db.Create() 就可以插入一条记录。不用拼接sql语句,是不是很方便。
更新
// 更新 - 更新product的price为2000db.Model(&product).Update("Price", 2000)
删除
简单对象删除:
db.Delete(&product)复杂条件的删除:if err := db.Where(&Product{ID: 1}).Delete(Product{}).Error; err != nil { return err}
事务
func CreateProducts(db *gorm.DB) err {
tx := db.Begin()
// 注意,一旦你在一个事务中,使用tx作为数据库句柄
if err := tx.Create(&Product{Code: "ik01003", Price: 3000}).Error; err != nil {
tx.Rollback()
return err
}
tx.Commit()
return nil
}
事务的处理也很简单,用 db.Begin() 声明开启事务,结束的时候调用 tx.Commit(),异常的时候调用 tx.Rollback()
最后
1. 以上就把基本的增删改查介绍完了,实际使用中还有很多高级的用法,比如关联查询,主外键设置等。大家可以看看官方的使用说明:http://gorm.book.jasperxu.com/
本文来自:51CTO博客
感谢作者:mb5fe94b3e552d9
查看原文:介绍一个超好用的orm库gorm【Golang 入门系列十二】
相关阅读 >>
Golang学习笔记--unsafe.pointer和uintptr
更多相关阅读请进入《Go》频道 >>

Go语言101
一个与时俱进的Go编程知识库。