generator

package
v1.3.7 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DaoTemplatePath

func DaoTemplatePath() string

func DtoTemplatePath

func DtoTemplatePath() string

func FrameworkPrefix

func FrameworkPrefix() string

func GenerateDao

func GenerateDao(schema model.Schema, templateContent, outputFilePath string) (err error)

func GenerateDaoCode

func GenerateDaoCode(schema model.Schema, templateContent string) (code string, err error)

func GenerateDaos

func GenerateDaos(schemas []model.Schema) (err error)

func GenerateDto

func GenerateDto(schema model.Schema, templateContent, outputFilePath string) (err error)

func GenerateDtoCode

func GenerateDtoCode(schema model.Schema, templateContent string) (code string, err error)

func GenerateDtos

func GenerateDtos(schemas []model.Schema) (err error)

func GenerateModel

func GenerateModel(schema model.Schema, templateContent, outputFilePath string) (err error)

func GenerateModelCode

func GenerateModelCode(schema model.Schema, templateContent string) (code string, err error)

func GenerateModels

func GenerateModels(schemas []model.Schema) (err error)

func GenerateTool

func GenerateTool(templateContent, outputFilePath string) (err error)

func GenerateToolCode

func GenerateToolCode(templateContent string) (code string, err error)

func GenerateTools

func GenerateTools() (err error)

func GenerateVO

func GenerateVO(schema model.Schema, templateContent, outputFilePath string) (err error)

func GenerateVoCode

func GenerateVoCode(schema model.Schema, templateContent string) (code string, err error)

func GenerateVos

func GenerateVos(schemas []model.Schema) (err error)

func GetGoType

func GetGoType(col model.Column) string

GetGoType 根据列的数据库类型返回对应的 Go 类型 支持可空类型自动转换为指针类型

参数:

  • col: 列定义,包含数据库类型和是否可空等信息

返回:

  • string: 对应的 Go 类型,如 "uint64", "*string", "time.Time" 等

示例:

  • bigint unsigned + 非空 -> uint64
  • varchar(128) + 可空 -> *string
  • datetime + 非空 -> time.Time

func IsSnakeCaseStyle

func IsSnakeCaseStyle(columns []model.Column) bool

IsSnakeCaseStyle 判断列定义列表的整体命名风格是否为蛇形命名 用于模板中判断应该生成蛇形还是驼峰风格的 JSON tag 参数:

  • columns: 列定义列表

返回:

  • bool: true 表示蛇形命名风格,false 表示驼峰命名风格

示例:

  • IsSnakeCaseStyle(columns) -> true (如果字段包含 user_id, created_at 等)
  • IsSnakeCaseStyle(columns) -> false (如果字段包含 userId, createdAt 等)

func PoTemplatePath

func PoTemplatePath() string

func ToCamelCase

func ToCamelCase(s string) string

ToCamelCase 将字符串转换为 camelCase(小驼峰) 用于模板中生成参数名等需要小驼峰格式的场景

func ToJsonTag

func ToJsonTag(fieldName, suffix string, columns []model.Column) string

ToJsonTag 根据列定义列表的整体命名风格生成 JSON tag 用于模板中为带后缀的字段生成合适的 JSON tag 参数:

  • fieldName: 当前字段名
  • suffix: 后缀(如 "List", "Fuzzy", "Start", "End")
  • columns: 列定义列表,用于判断整体命名风格

返回:

  • string: 生成的 JSON tag

示例:

  • ToJsonTag("user_id", "List", columns) -> "user_id_list" (蛇形风格)
  • ToJsonTag("userId", "List", columns) -> "userIdList" (驼峰风格)

func ToPascalCase

func ToPascalCase(s string) string

func ToSafeParamName

func ToSafeParamName(s string) string

ToSafeParamName 将字符串转换为安全的参数名(避免 Go 关键字冲突) 用于模板中生成函数参数名,如果是 Go 关键字则添加后缀

func ToolTemplateDir

func ToolTemplateDir() string

func ToolTemplatePath

func ToolTemplatePath(templateName string) string

func TrimPointer

func TrimPointer(s string) string

TrimPointer 去除类型前面的指针符号 * 专门用于模板中将指针类型转换为值类型 参数:

  • s: 原始类型字符串(如 "*string", "*int64")

返回:

  • string: 去除指针符号后的类型(如 "string", "int64")

示例:

  • TrimPointer("*string") -> "string"
  • TrimPointer("*int64") -> "int64"
  • TrimPointer("string") -> "string" (如果没有指针符号,返回原值)

func TrimPrefix

func TrimPrefix(s, prefix string) string

TrimPrefix 去除字符串的前缀 用于模板中去除类型前面的指针符号等 参数:

  • s: 原始字符串
  • prefix: 要去除的前缀

返回:

  • string: 去除前缀后的字符串

示例:

  • TrimPrefix("*string", "*") -> "string"

func VoTemplatePath

func VoTemplatePath() string

Types

type TemplateData

type TemplateData struct {
	PoPackageName  string         // po 包名(从路径最后一段提取)
	DtoPackageName string         // dto 包名(从路径最后一段提取)
	VoPackageName  string         // vo 包名(从路径最后一段提取)
	DaoPackageName string         // dao 包名(从路径最后一段提取)
	Schemas        []model.Schema // 表结构列表
}

TemplateData 传递给模板的数据结构

Jump to

Keyboard shortcuts

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