sql

package
v0.0.0-...-f0bfebe Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//生成文件所在的目录
	GENERATE_DIR = `./lwe-generate-file`
	//生成JAVA文件名
	GENERATE_JAVA_FILENAME = "%s.java"
	//生成Go文件名
	GENERATE_GO_FILENAME = "lwe_struct.go"
	//go模板头内容
	GO_TPL_HEAD = `package lwe  
					import ("time")`
)

定义sql所用的常量

Variables

This section is empty.

Functions

func DoParse

func DoParse(parse IParseDDL, sqlTextArr []string, args map[string]interface{})

DoParse 定义了整个解析、生成的流程

Types

type AbstractParseDDL

type AbstractParseDDL struct {
}

AbstractParseDDL IParseDDL 接口抽象实现

func (AbstractParseDDL) CovertSyntax

func (a AbstractParseDDL) CovertSyntax(info *ObjInfo)

func (AbstractParseDDL) ParseDDL

func (a AbstractParseDDL) ParseDDL(sqlText string, args map[string]interface{}) (*ObjInfo, error)

func (AbstractParseDDL) RenderData

func (a AbstractParseDDL) RenderData(info *ObjInfo)

type FieldInfo

type FieldInfo struct {
	ColumnName   string //  列名
	ColumnType   string //  列类型
	FieldName    string //  字段名
	FieldType    string //  字段类型
	FieldComment string //  字段的注释
}

FieldInfo 字段信息

type GoStructRenderData

type GoStructRenderData struct {
	AbstractParseDDL
	// contains filtered or unexported fields
}

func NewGoStructRenderData

func NewGoStructRenderData() *GoStructRenderData

func (*GoStructRenderData) CovertSyntax

func (g *GoStructRenderData) CovertSyntax(objInfos []*ObjInfo)

func (*GoStructRenderData) RenderData

func (g *GoStructRenderData) RenderData(objInfos []*ObjInfo)

type IParseDDL

type IParseDDL interface {

	// ParseDDL 解析DDL文本
	//args 命令行传入的参数,如:注释中的author字段
	ParseDDL(sqlText string, args map[string]interface{}) (*ObjInfo, error)

	// CovertSyntax 转换到不同语言的字段类型
	// 比如sql中int对应到Java中的Integer,对应到go中的int32等
	CovertSyntax(info []*ObjInfo)

	// RenderData 根据模版渲染数据
	RenderData(info []*ObjInfo)
}

IParseDDL 解析生成目标文件的核心接口

type JavaRenderData

type JavaRenderData struct {
	AbstractParseDDL
	JavaTpl *template.Template
}

func NewJavaRenderData

func NewJavaRenderData() *JavaRenderData

func (*JavaRenderData) CovertSyntax

func (m *JavaRenderData) CovertSyntax(objInfos []*ObjInfo)

func (*JavaRenderData) RenderData

func (m *JavaRenderData) RenderData(objInfos []*ObjInfo)

type JsonRenderData

type JsonRenderData struct {
	AbstractParseDDL
}

func NewJsonRenderData

func NewJsonRenderData() *JsonRenderData

func (*JsonRenderData) CovertSyntax

func (j *JsonRenderData) CovertSyntax(objInfos []*ObjInfo)

func (*JsonRenderData) RenderData

func (j *JsonRenderData) RenderData(objInfos []*ObjInfo)

type ObjInfo

type ObjInfo struct {
	TableName    string                 //  表名
	ObjName      string                 //	 对象名
	ObjComment   string                 //	 对象的注释
	GenerateDate string                 //  生成日期
	PrimaryField string                 //  主键对应的字段
	FieldInfos   []*FieldInfo           //  字段的切片
	Args         map[string]interface{} //  命令行传入的参数
}

ObjInfo 表映射的对象及其字段信息

Jump to

Keyboard shortcuts

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