Documentation
¶
Overview ¶
Package parser is a library that parses to go structures based on sql and generates the code needed based on the template.
Index ¶
- Constants
- func GetMysqlTableInfo(dsn, tableName string) (string, error)
- func GetTableInfo(dsn, tableName string) (string, error)
- func ParseSQL(sql string, options ...Option) (map[string]string, error)
- func UnMarshalTableInfo(data string) (map[string]interface{}, error)
- type Codes
- type CrudInfo
- type Field
- type NullStyle
- type Option
- func WithCharset(charset string) Option
- func WithCollation(collation string) Option
- func WithColumnPrefix(p string) Option
- func WithCustomTemplate() Option
- func WithDBDriver(driver string) Option
- func WithEmbed() Option
- func WithExtendedAPI() Option
- func WithFieldTypes(fieldTypes map[string]string) Option
- func WithForceTableName() Option
- func WithGormType() Option
- func WithJSONTag(namedType int) Option
- func WithNoNullType() Option
- func WithNullStyle(s NullStyle) Option
- func WithPackage(pkg string) Option
- func WithTablePrefix(p string) Option
- func WithWebProto() Option
- type PrimaryKey
- type TableInfo
Constants ¶
View Source
const ( // TableName table name TableName = "__table_name__" // CodeTypeModel model code CodeTypeModel = "model" // CodeTypeJSON json code CodeTypeJSON = "json" // CodeTypeDAO update fields code CodeTypeDAO = "dao" // CodeTypeHandler handler request and respond code CodeTypeHandler = "handler" // CodeTypeProto proto file code CodeTypeProto = "proto" // CodeTypeService grpc service code CodeTypeService = "service" // CodeTypeCrudInfo crud info json data CodeTypeCrudInfo = "crud_info" // CodeTypeTableInfo table info json data CodeTypeTableInfo = "table_info" // DBDriverMysql mysql driver DBDriverMysql = "mysql" )
View Source
const ( // SubStructKey sub struct key for model SubStructKey = "__sub_struct__" // ProtoSubStructKey sub struct key for protobuf ProtoSubStructKey = "__proto_sub_struct__" )
Variables ¶
This section is empty.
Functions ¶
func GetMysqlTableInfo ¶
GetMysqlTableInfo 从 MySQL 数据库中获取表的创建信息
func GetTableInfo ¶
GetTableInfo 从 MySQL 数据库中获取表的创建信息 已废弃:请使用 GetMysqlTableInfo 替代
func UnMarshalTableInfo ¶ added in v1.1.23
UnMarshalTableInfo unmarshal the json data to TableInfo struct
Types ¶
type Codes ¶
type Codes struct {
Model []string // model code
UpdateFields []string // update fields code
ModelJSON []string // model json code
HandlerStruct []string // handler request and respond code
}
Codes content
type CrudInfo ¶ added in v1.1.23
type CrudInfo struct {
TableNameCamel string `json:"tableNameCamel"` // camel case, example: FooBar
TableNameCamelFCL string `json:"tableNameCamelFCL"` // camel case and first character lower, example: fooBar
TableNamePluralCamel string `json:"tableNamePluralCamel"` // plural, camel case, example: FooBars
TableNamePluralCamelFCL string `json:"tableNamePluralCamelFCL"` // plural, camel case, example: fooBars
ColumnName string `json:"columnName"` // column name, example: first_name
ColumnNameCamel string `json:"columnNameCamel"` // column name, camel case, example: FirstName
ColumnNameCamelFCL string `json:"columnNameCamelFCL"` // column name, camel case and first character lower, example: firstName
ColumnNamePluralCamel string `json:"columnNamePluralCamel"` // column name, plural, camel case, example: FirstNames
ColumnNamePluralCamelFCL string `json:"columnNamePluralCamelFCL"` // column name, plural, camel case and first character lower, example: firstNames
GoType string `json:"goType"` // go type, example: string, uint64
GoTypeFCU string `json:"goTypeFCU"` // go type, first character upper, example: String, Uint64
ProtoType string `json:"protoType"` // proto type, example: string, uint64
IsStringType bool `json:"isStringType"` // go type is string or not
PrimaryKeyColumnName string `json:"PrimaryKeyColumnName"` // primary key, example: id
IsCommonType bool `json:"isCommonType"` // custom primary key name and type
IsStandardPrimaryKey bool `json:"isStandardPrimaryKey"` // standard primary key id
}
CrudInfo crud info for cache, dao, handler, service, protobuf, error
func (*CrudInfo) CheckCommonType ¶ added in v1.1.23
func (*CrudInfo) GetGRPCProtoValidation ¶ added in v1.1.23
func (*CrudInfo) GetWebProtoValidation ¶ added in v1.1.23
type Field ¶ added in v1.1.23
type Field struct {
ColumnName string // original column name, example: foo_bar
ColumnNameCamel string // first character lower, example: FooBar
ColumnNameCamelFCL string // first character lower, example: fooBar
ColumnComment string // column comment
IsPrimaryKey bool // is primary key
GoType string // convert to go type
Tag string // tag for model struct field, default gorm tag
}
Field is the struct for column information
type Option ¶
type Option func(*options)
Option 是一个函数类型,用于设置选项
func WithCustomTemplate ¶ added in v1.1.23
func WithCustomTemplate() Option
WithCustomTemplate 设置是否使用自定义扩展模板
func WithFieldTypes ¶
WithFieldTypes 设置字段类型映射
type PrimaryKey ¶ added in v1.1.23
type PrimaryKey struct {
Name string // primary key name, example: foo_bar
NameCamel string // primary key name, camel case, example: FooBar
NameCamelFCL string // primary key name, camel case and first character lower, example: fooBar
NamePluralCamel string // primary key name, plural, camel case, example: FooBars
NamePluralCamelFCL string // primary key name, plural, camel case and first character lower, example: fooBars
GoType string // go type, example: int, string
GoTypeFCU string // go type, first character upper, example: Int64, String
IsStringType bool // go type is string or not
}
PrimaryKey is the struct for primary key information, it used for generate CRUD code
type TableInfo ¶ added in v1.1.23
type TableInfo struct {
TableNamePrefix string // table name prefix, example: t_
TableName string // original table name, example: foo_bar
TableNameCamel string // camel case, example: FooBar
TableNameCamelFCL string // camel case and first character lower, example: fooBar
TableNamePluralCamel string // plural, camel case, example: FooBars
TableNamePluralCamelFCL string // plural, camel case and first character lower, example: fooBars
TableNameSnake string // snake case, example: foo_bar
TableComment string // table comment
Columns []Field // columns of the table
PrimaryKey *PrimaryKey // primary key information
DBDriver string // database driver, example: mysql
ColumnSubStructure string // column sub structure for model
ColumnSubMessage string // sub message for protobuf
}
TableInfo is the struct for extend template
Click to show internal directories.
Click to hide internal directories.