tpl

package
v0.1.17 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AnalyzeTPLFromCache

func AnalyzeTPLFromCache(template SQLTemplate, tpl string, input map[string]interface{}) (sql string, values []interface{})

AnalyzeTPLFromCache 从缓存中获取已解析的SQL语句 @表达式,替换为参数化字符如: :1,:2,:3 $表达式,检查值,值为空时返加"",否则直接替换字符 &条件表达式,检查值,值为空时返加"",否则返回: and name=value |条件表达式,检查值,值为空时返回"", 否则返回: or name=value

func DefaultAnalyze

func DefaultAnalyze(symbols Symbols, tpl string, input map[string]interface{}, placeholder func() string) (string, []string, []interface{})

func GetPropName

func GetPropName(fullKey string) (propName string)

func IsNil

func IsNil(input interface{}) bool

func Register

func Register(tpl SQLTemplate)

Types

type FixedContext

type FixedContext struct {
	// contains filtered or unexported fields
}

FixedContext 模板

func (*FixedContext) AnalyzeTPL

func (ctx *FixedContext) AnalyzeTPL(tpl string, input map[string]interface{}) (sql string, names []string, values []interface{})

func (*FixedContext) GetSQLContext

func (ctx *FixedContext) GetSQLContext(tpl string, input map[string]interface{}) (query string, args []interface{})

GetSQLContext 获取查询串

func (FixedContext) Name

func (ctx FixedContext) Name() string

func (*FixedContext) Placeholder

func (ctx *FixedContext) Placeholder() Placeholder

type Placeholder

type Placeholder func() string

type ReplaceItem

type ReplaceItem struct {
	Names       []string
	Values      []interface{}
	NameCache   map[string]string
	Placeholder Placeholder
}

type SQLTemplate

type SQLTemplate interface {
	Name() string
	Placeholder() Placeholder
	GetSQLContext(tpl string, input map[string]interface{}) (query string, args []interface{})
	AnalyzeTPL(tpl string, input map[string]interface{}) (sql string, names []string, values []interface{})
}

Template 模板上下文

func GetDBTemplate

func GetDBTemplate(name string) (SQLTemplate, error)

GetDBTemplate 获取数据库上下文操作

func NewFixed

func NewFixed(name, prefix string) SQLTemplate

func NewSeq

func NewSeq(name, prefix string) SQLTemplate

type SeqContext

type SeqContext struct {
	// contains filtered or unexported fields
}

SeqContext 参数化时使用@+参数名作为占位符的SQL数据库如:oracle,sql server

func (*SeqContext) AnalyzeTPL

func (ctx *SeqContext) AnalyzeTPL(tpl string, input map[string]interface{}) (sql string, names []string, values []interface{})

func (*SeqContext) GetSQLContext

func (ctx *SeqContext) GetSQLContext(tpl string, input map[string]interface{}) (sql string, args []interface{})

GetSQLContext 获取查询串

func (SeqContext) Name

func (ctx SeqContext) Name() string

func (*SeqContext) Placeholder

func (ctx *SeqContext) Placeholder() Placeholder

type SymbolCallback

type SymbolCallback func(map[string]interface{}, string, *ReplaceItem) string

type Symbols

type Symbols map[string]SymbolCallback

Jump to

Keyboard shortcuts

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