gorm gen 使用介绍

gorm.io/gen 是 GORM 的一个代码生成工具,用于生成基于 GORM 的数据库操作代码。它可以帮助你自动生成模型、查询方法、以及相关的 CRUD 操作代码,从而减少手动编写重复代码的工作量。以下是一个基本的使用说明,帮助你快速上手 gorm.io/gen

1. 安装

首先,你需要安装 gorm.io/gen

go get -u gorm.io/gen

2. 初始化生成器

在你的项目中,创建一个 Go 文件(例如 generate.go),用于初始化生成器并生成代码。

package main

import (
    "gorm.io/driver/mysql"
    "gorm.io/gen"
    "gorm.io/gorm"
)

func main() {
    // 初始化数据库连接
    dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic(err)
    }

    // 初始化生成器
    g := gen.NewGenerator(gen.Config{
        OutPath: "./query", // 生成的代码输出路径
        Mode:    gen.WithDefaultQuery | gen.WithQueryInterface, // 生成模式
    })

    // 使用数据库连接
    g.UseDB(db)

    // 生成代码
    g.Execute()
}

3. 生成模型和查询代码

在 generate.go 文件中,你可以通过以下方式生成模型和查询代码:

// 生成所有表的模型和查询代码
g.GenerateAllTable()

// 或者生成指定表的模型和查询代码
g.GenerateModel("users")
g.GenerateModel("products")

4. 运行生成器

在终端中运行以下命令来生成代码:

go run generate.go

运行后,生成的代码将会输出到指定的 OutPath 目录中(例如 ./query)。

5. 使用生成的代码

生成的代码包括模型和查询方法,你可以在项目中使用这些生成的代码来进行数据库操作。

package main

import (
    "fmt"
    "your_project/query"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

func main() {
    // 初始化数据库连接
    dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic(err)
    }

    // 使用生成的查询代码
    q := query.Use(db)
    user, err := q.User.Where(q.User.ID.Eq(1)).First()
    if err != nil {
        panic(err)
    }

    fmt.Println(user)
}

6. 自定义生成代码

你可以通过配置生成器来自定义生成的代码。例如,你可以指定生成的模型结构体名称、字段名称、以及自定义查询方法。

g.GenerateModel("users", gen.FieldType("id", "int64"), gen.FieldGORMTag("created_at", "column:created_at;type:datetime;autoCreateTime"))

7. 生成模式

gorm.io/gen 提供了多种生成模式,你可以根据需要选择:

  • gen.WithDefaultQuery: 生成默认的查询方法。
  • gen.WithQueryInterface: 生成查询接口。
  • gen.WithoutContext: 不生成带有 context.Context 的方法。

8. 其他功能

gorm.io/gen 还支持生成关联查询、自定义方法、以及生成测试代码等功能。你可以参考官方文档了解更多高级用法。

9. 参考文档

总结

gorm.io/gen 是一个强大的代码生成工具,能够帮助你快速生成基于 GORM 的数据库操作代码。通过自动生成模型和查询方法,你可以减少手动编写重复代码的工作量,提高开发效率。希望这个使用说明能帮助你快速上手 gorm.io/gen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值