介绍一个超好用的orm库gorm【Golang 入门系列十二】


当前第2页 返回上一页

// 自动迁移模式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 map做gc?

Golang学习笔记--unsafe.pointer和uintptr

Go语言标准库之flag

编写可测试的 Go 代码

Golang交叉编译简述

Golang实现php常用函数

解构 dubbo-Go 的核心注册引擎 nacos

Golang

win7 Go语言如何安装

详解Golang发送邮件(qq邮箱)

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...