大力推广建设电子商务网站技术aso如何优化
事务处理
- 首先启动事务时一定要做错误判断
- 建议在启动事务之后马上写defer方法
- 在defer方法内对err进行判断,如果全局中有err!=nil就回滚
- 全局中err都为nil则提交事务
- 在提交事务之后我们可以定义一个钩子函数
afterCommit
,来统一处理事务提交后的逻辑。
示例代码如下:
x, err := g.DB().Begin()
if err != nil {return errors.New("启动事务失败")
}defer func() {if err != nil {tx.Rollback()} else {tx.Commit()//定义钩子函数afterCommmit()}
}()