Documentation ¶
Index ¶
- Constants
- func GetSqlParamKey(sqlParamKey string) string
- func GetSqlParamKeyName(param_key string) string
- func GetSqlParamKeyValue(param_key string, param_value interface{}, to_param_key bool) string
- type AttrParam
- type BaseParam
- func GetArrayObjParamObj(paramKey string, childrenKeys []string, params map[string]interface{}) BaseParam
- func GetSimpleParamObj(ParamKeyOriginal string, params map[string]interface{}) BaseParam
- func NewParam(param_key string, param_key_original string, param_value interface{}) BaseParam
- func NewParamFromMap(param_key_original string, param map[string]interface{}) BaseParam
- type NormalArray
- type NormalArrayObj
- type NormalParam
- func (t *NormalParam) GetParamKeyOriginal() string
- func (t *NormalParam) GetSqlParamKeyValue(to_param_key bool) interface{}
- func (t *NormalParam) GetSqlParamParamKey() string
- func (t *NormalParam) GetSqlParamParamKeyList() []AttrParam
- func (t *NormalParam) GetValue() []interface{}
- func (t *NormalParam) SetChildKeys(childrenKeys []string)
- func (t *NormalParam) SetParamKey(param_key string)
- func (t *NormalParam) SetParamKeyOrinal(param_key_original string)
- func (t *NormalParam) SetParamKeyValue(param_key_value interface{})
- type SqlParamName
- type SqlTemplate
Constants ¶
View Source
const ARR_OBJ_SPLIT = "________________COLLECT_SQL_OBJ_ARR_PARAM_SPLIT________________"
View Source
const ArrSplit = "_______________COLLECT_SQL_ARR_PARAM_SPLIT________________"
View Source
const LIST_OBJ = "list_obj"
View Source
const LIST_SIMPLE = "list_simple"
View Source
const PARAM_LIST_OBJ = "list_obj"
View Source
const PARAM_LIST_SIMPLE = "list_simple"
View Source
const PARAM_SIMPLE_PARAM = "simple"
View Source
const SIMPLE_PARAM = "simple"
View Source
const SPLIT = "________________COLLECT_SQL_NORMAL_PARAM_SPLIT________________"
Variables ¶
This section is empty.
Functions ¶
func GetSqlParamKey ¶
func GetSqlParamKeyName ¶
func GetSqlParamKeyValue ¶
* * to_param_key 渲染第一次模板变量为true *
Types ¶
type BaseParam ¶
type BaseParam interface { // 设置字段名名 SetParamKey(string) // 设置原始key SetParamKeyOrinal(string) // 设置字段值 SetParamKeyValue(interface{}) // 获取字段名的参数值,比如 to_param_key 为true ,直接返回字段名称,如果为false ,直接返回 sql占位符号 ?。如果是数组则是,多个? 拼接的字符串 GetSqlParamKeyValue(to_param_key bool) interface{} // 获取字段名,获取模板变量里面的字段名称,比如 {{.userList}},获取变量userList GetSqlParamParamKey() string // 获取原始变量值{{.userList}},获取变量{{.userList}} GetParamKeyOriginal() string // 获取参数的值 GetValue() []interface{} // 获取数组对象列表的key GetSqlParamParamKeyList() []AttrParam // 设置子变量名称 SetChildKeys(childrenKeys []string) }
todo 定义一个结构体 1 根据字段名返回参数情况下,字段名,值情况下的字段名。用于渲染渲染第一sql 渲染变量处理,第二次渲染预编译变量 2 返回字段名形式下的,参数值列表,用于第二次的渲染参数值 3 返回 2渲染实际结果值
func GetArrayObjParamObj ¶
func GetArrayObjParamObj(paramKey string, childrenKeys []string, params map[string]interface{}) BaseParam
* * 获取数组对象列表
func GetSimpleParamObj ¶
* * 获取简单对象
func NewParamFromMap ¶
type NormalArray ¶
type NormalArray struct {
NormalParam
}
func (*NormalArray) GetSqlParamKeyValue ¶
func (t *NormalArray) GetSqlParamKeyValue(to_param_key bool) interface{}
获取数组的参数变量
func (*NormalArray) GetSqlParamParamKeyList ¶
func (t *NormalArray) GetSqlParamParamKeyList() []AttrParam
* * 获取数组对象的key
type NormalArrayObj ¶
type NormalArrayObj struct {
NormalParam
}
func (*NormalArrayObj) GetSqlParamKeyValue ¶
func (t *NormalArrayObj) GetSqlParamKeyValue(to_param_key bool) interface{}
获取数组的参数变量
func (*NormalArrayObj) GetSqlParamParamKeyList ¶
func (t *NormalArrayObj) GetSqlParamParamKeyList() []AttrParam
* * 获取数组对象的key
type NormalParam ¶
type NormalParam struct { // 转换后key ParamKey string // 原始key ParamKeyOriginal string // 值 ParamValue interface{} // 子变量 ChildKeys []string }
func (*NormalParam) GetParamKeyOriginal ¶
func (t *NormalParam) GetParamKeyOriginal() string
func (*NormalParam) GetSqlParamKeyValue ¶
func (t *NormalParam) GetSqlParamKeyValue(to_param_key bool) interface{}
* * to_param_key 渲染第一次模板变量为true *
func (*NormalParam) GetSqlParamParamKey ¶
func (t *NormalParam) GetSqlParamParamKey() string
func (*NormalParam) GetSqlParamParamKeyList ¶
func (t *NormalParam) GetSqlParamParamKeyList() []AttrParam
* * 获取数组对象的key
func (*NormalParam) SetChildKeys ¶
func (t *NormalParam) SetChildKeys(childrenKeys []string)
func (*NormalParam) SetParamKey ¶
func (t *NormalParam) SetParamKey(param_key string)
func (*NormalParam) SetParamKeyOrinal ¶
func (t *NormalParam) SetParamKeyOrinal(param_key_original string)
func (*NormalParam) SetParamKeyValue ¶
func (t *NormalParam) SetParamKeyValue(param_key_value interface{})
type SqlParamName ¶
type SqlParamName struct { Name string // 变量名称 Value interface{} // 值 VarType string // 变量类型 ItemName string // 子变量前缀 ItemVarList []SqlParamName // 子变量列表 }
* sql 变量类型
func (*SqlParamName) GetItemName ¶
func (t *SqlParamName) GetItemName() string
func (*SqlParamName) GetItemVarList ¶
func (t *SqlParamName) GetItemVarList() []SqlParamName
func (*SqlParamName) GetName ¶
func (t *SqlParamName) GetName() string
func (*SqlParamName) IsSimple ¶
func (t *SqlParamName) IsSimple() bool
type SqlTemplate ¶
type SqlTemplate struct { SqlContent string Nodes []parse.Node Tpl text_template.Template }
* * sql 模板 *
func NewSqlTemplateByTpl ¶
func NewSqlTemplateByTpl(tpl *text_template.Template) *SqlTemplate
* * 初始化模板 *
func (*SqlTemplate) Content2Sql ¶
func (t *SqlTemplate) Content2Sql(params map[string]interface{}, to_param_key bool) (string, map[string]interface{}, []interface{})
* *
根据sql 模板渲染sql, 并且获取变量 sql 模板内容转执行sql,sql 需要渲染2次。 第一次处理if else ,处理显示和隐藏的变量, 第二次将变量替换为sql 里面的站位符号,处理成预编译语句 sql 只处理params第一层变量,不处理2、3层变量以及更深层次的变量,如果有2、3层变量将直接渲染,请注意否有sql 注入的风险 也不能像写html 层级,各种标签 @param sql_content SQL 内容 @param params 请求参数 @to_param_key 是否转参数字段,第一次需要处理if else ,第二次渲染预编译的sql
*
func (*SqlTemplate) VarNameList ¶
func (t *SqlTemplate) VarNameList(params map[string]interface{}) []BaseParam
* ** 获取变量列表 *
Click to show internal directories.
Click to hide internal directories.