Go语学习笔记 - gorm使用 - 事务操作 Web框架Gin(十一)

本文主要介绍在Go项目中使用Gorm进行事务处理的实践,通过示例展示了如何在出现异常时回滚操作。在student_service中新增的TestTransaction方法演示了事务的使用,强调了在事务方法内部应使用tx而不是db,以确保事务正确执行。通过测试,确认了事务未提交时数据不会插入到表中。
摘要由CSDN通过智能技术生成

学习笔记,写到哪是哪。

接着上一篇文章:Go语学习笔记 - gorm使用 - gorm处理错误 | Web框架Gin(十)_的博客-CSDN博客

在项目中事务处理,回滚操作还是比较常见的需求。

本文测试一下gorm的事务处理效果。

项目地址:github地址

如果没有事务方面需求,也是可以全局禁用事务的,官方给出的性能提升是30%。

在student_service下新增TestTransaction方法。

方法代码如下:

//测试事务效果
func (t StudentImpl) TestTransaction() rsp.ResponseMsg {
	log.Logger.Info("测试事务效果")
	_db := mysql.GetDB()
	_db.Transaction(func(tx *gorm.DB) error {
		tx.Create(&db_entity.Student{
			Name: "张飞", Age: 200,
		})
		var _student db_entity.Student
		if _err := tx.Where("del_flag = 1").First(&_student).Error; _err != nil {
			return _err
		}
		fmt.Println(_
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值