jjnoob

tizi-beego-10-数据库事务处理

2019-07-29
jjnoob

参考

beego orm处理mysql事务:

// 创建orm对象
o := orm.NewOrm()

//  开始事务
o.Begin()

// 开始执行各种sql语句,更新数据库,这里可以使用beego orm支持任何一种方式操作数据库

// 例如,更新订单状态
_, err1 := o.QueryTable("orders").Filter("Id", 1001).Update(orm.Params{
    "Status": "SUCCESS",
})

// 给用户加积分
_, err2 := o.Raw("update users set points = points + ? where username=?", "tizi365", 100).Exec()

// 检测事务执行状态
if err1 != nil || err2 != nil {
    // 如果执行失败,回滚事务
    o.Rollback()
} else {
    // 任务执行成功,提交事务
    o.Commit()
}

Similar Posts

Content