sql2code

package
v1.1.39 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2024 License: MIT Imports: 7 Imported by: 0

README

sql2code

Generate code for different purposes according to sql, support generating json, gorm model, update parameter, request parameter code, sql can be obtained from parameter, file, db three ways, priority from high to low.


Example of use

Main setting parameters.

type Args struct {
	SQL string // DDL sql

	DDLFile string // DDL file

	DBDsn   string // connecting to mysql's dsn
	DBTable string // table name

	Package        string // specify the package name (only valid for model types)
	GormType       bool   // gorm type
	JSONTag        bool   // does it include a json tag
	JSONNamedType  int    // json naming type, 0: consistent with the column name, other values indicate a hump
	IsEmbed        bool   // is gorm.Model embedded
	CodeType       string // specify the different types of code to be generated, namely model (default), json, dao, handler, proto
}

Generated code example.

    import "github.com/18721889353/sunshine/pkg/sql2code"

    // generate gorm model code
    code, err := sql2code.GenerateOne(&sql2code.Args{
        SQL: sqlData,  // source from sql text
        // DDLFile: "user.sql", // source from sql file
        // DBDsn: "root:123456@(127.0.0.1:3306)/account"
        // DBTable "user"
        GormType: true,
        JSONTag: true,
        IsEmbed: true,
        CodeType: "model"
    })

      // generate json, model, dao, handler code
      codes, err := sql2code.Generate(&sql2code.Args{
          SQL: sqlData,  // source from sql text
          // DDLFile: "user.sql", // source from sql file
          // DBDsn: "root:123456@(127.0.0.1:3306)/account"
          // DBTable "user"
          GormType: true,
          JSONTag: true,
          IsEmbed: true,
          CodeType: "dao"
      })

Documentation

Overview

Package sql2code 提供根据 SQL 生成不同用途代码的功能, 支持生成 JSON、GORM 模型、更新参数、请求参数代码, SQL 可以从参数、文件、数据库三种方式获取,优先级从高到低。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Generate

func Generate(args *Args) (map[string]string, error)

Generate 生成模型、JSON、DAO、Handler、Proto 代码

func GenerateOne

func GenerateOne(args *Args) (string, error)

GenerateOne 从 SQL 生成 GORM 代码,SQL 可以从参数、文件、数据库获取,优先级从高到低

Types

type Args

type Args struct {
	SQL string // DDL SQL 语句

	DDLFile string // DDL 文件路径

	DBDriver string // 数据库驱动名称,如 mysql, mongodb, postgresql, sqlite,默认为 mysql
	DBDsn    string // 连接 MySQL 的 DSN,如果是 SQLite,DBDsn 是本地数据库文件路径
	DBTable  string // 表名

	Package        string // 指定包名(仅对模型类型有效)
	GormType       bool   // 是否显示 GORM 类型名称(仅对模型类型代码有效)
	JSONTag        bool   // 是否包含 JSON 标签
	JSONNamedType  int    // JSON 字段命名类型,0: 蛇形命名如 my_field_name,1: 驼峰命名如 myFieldName
	IsEmbed        bool   // 是否嵌入 gorm.Model
	IsWebProto     bool   // proto 文件类型,true: 包含路由路径和 Swagger 信息,false: 正常 proto 文件不包含路由和 Swagger
	CodeType       string // 指定生成的不同类型的代码,包括 model(默认)、json、dao、handler、proto
	ForceTableName bool
	Charset        string
	Collation      string
	TablePrefix    string
	ColumnPrefix   string
	NoNullType     bool
	NullStyle      string
	IsExtendedAPI  bool // true: 生成扩展 API(9 个 API),false: 生成基本 API(5 个 API)

	IsCustomTemplate bool // 是否使用自定义模板,默认为 false
	// contains filtered or unexported fields
}

Args 生成代码的参数结构体

Directories

Path Synopsis
Package parser is a library that parses to go structures based on sql and generates the code needed based on the template.
Package parser is a library that parses to go structures based on sql and generates the code needed based on the template.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL