package main
import (
"fmt"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stores/sqlx/gorm"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var db *sqlx.DB
func init() {
var err error
db, err = gorm.New(mysql.Open("user:password@tcp(host:port)/database"), &gorm.Config{})
if err != nil {
panic(err)
}
}
func main() {
// 假设有一个User模型和对应的users表
type User struct {
Name string `gorm:"column:name"`
Age int `gorm:"column:age"`
}
// 插入一个用户
user := User{Name: "John", Age: 18}
err := db.Transaction(func(tx *gorm.DB) error {
if err := tx.Create(&user).Error; err != nil {
return err
}
// 更多的数据库操作...
return nil
})
if err != nil {
fmt.Println("数据库操作失败:", err)
} else {
fmt.Println("数据库操作成功")
}
}
这个代码示例展示了如何使用go-zero框架中的gorm存储库来进行数据库的事务处理。首先,我们初始化了一个数据库连接,然后在main函数中,我们定义了一个User模型,并在一个事务中插入了一个用户。如果操作失败,我们打印错误信息;如果成功,我们打印成功信息。这个例子简单地展示了如何在go-zero框架中使用gorm进行数据库操作。