一架梯子,一头程序猿,仰望星空!
GORM面试题 > 内容正文

怎么使用GORM进行事务操作?


问题简答

GORM提供了一组方法来支持事务操作,可以通过 Begin 方法开始一个事务,Commit 方法提交事务,Rollback 方法回滚事务。

问题详解:

GORM事务使用步骤

  1. 调用 DB 对象的 Begin 方法开启一个事务。
  2. 在事务中执行相应的操作,包括插入、更新和删除等。
  3. 如果操作成功,调用 Commit 方法提交事务;如果操作失败或出现异常,调用 Rollback 方法回滚事务。

GORM事务例子

// 开启事务
tx := db.Begin()

// 在事务中执行操作,注意下面使用的是tx,执行操作不是db
if err := tx.Create(&User{Name: "Alice"}).Error; err != nil {
    // 操作失败,回滚事务
    tx.Rollback()
    log.Fatal(err)
}

if err := tx.Create(&User{Name: "Bob"}).Error; err != nil {
    // 操作失败,回滚事务
    tx.Rollback()
    log.Fatal(err)
}

// 操作成功,提交事务
if err := tx.Commit().Error; err != nil {
    log.Fatal(err)
}