Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultIsNil(input interface{}) bool
- func Deregister(name string)
- func GetDbType(proto, dbtype string) (reflect.Type, bool)
- func NewBuilder() container.StandardBuilder
- func NewError(err error, execSql string, args []interface{}) error
- func NewPanicError(err error, strace string) error
- func RegistExpressionMatcher(proto string, matcher ExpressionMatcher) (err error)
- func RegistTemplate(tpl SQLTemplate) (err error)
- func Register(resolver Resolver)
- func RegisterDbType(dbType string, reflectType reflect.Type) (err error)
- func RegisterProtoDbType(proto, dbType string, reflectType reflect.Type) (err error)
- func RegistryLogger(logger Logger)
- func TransArgs(args []sql.NamedArg) []any
- type Config
- type DBParam
- type DbConn
- type DbError
- type DbParamConverter
- type DynamicType
- type Executer
- type ExpressionBuildCallback
- type ExpressionCache
- type ExpressionItem
- func (m *ExpressionItem) Build(state SqlState, param DBParam) (expression string, err MissError)
- func (m *ExpressionItem) GetFullfield() string
- func (m *ExpressionItem) GetMatcher() ExpressionMatcher
- func (m *ExpressionItem) GetOper() string
- func (m *ExpressionItem) GetOperatorCallback() (callback OperatorCallback, ok bool)
- func (m *ExpressionItem) GetPropName() string
- func (m *ExpressionItem) GetSymbol() Symbol
- type ExpressionMatcher
- type ExpressionMatcherMap
- type ExpressionValuer
- type IDB
- type ITrans
- type InvalidArgTypeError
- type Logger
- type MatcherOption
- type MatcherOptions
- type MissError
- type MissListError
- type Operator
- type OperatorCallback
- type OperatorMap
- type Option
- type PanicError
- type Placeholder
- type RawMessage
- type Resolver
- type Result
- type Row
- type Rows
- type SQLTemplate
- type SqlState
- type StandardDB
- type StmtDbTypeHandler
- type StmtDbTypeProcessor
- type StmtDbTypeWrap
- type Symbol
- type SymbolCallback
- type SymbolMap
- type SymbolType
- type TagOptions
- type TemplateMatcher
- type TemplateOption
- type TemplateOptions
- type TransactionCallback
Constants ¶
View Source
const ( SymbolAt = "@" SymbolAnd = "&" SymbolOr = "|" SymbolReplace = "$" )
View Source
const ( MissTypeParam = "param" MissTypeOper = "oper" MissTypeSymbol = "symbol" MissDataTypeSymbol = "datatype" )
View Source
const DbTypeNode = "dbs"
Variables ¶
View Source
var ( SecretKey = "glue.xdb12345678" SecretMode = "cbc/pkcs7" BaseSecretEnvName = "BASE_SECRET_ENV_NAME" )
View Source
var CheckIsNil func(input any) bool = DefaultIsNil
CheckIsNil 检查是否为空
View Source
var ConnRefactor func(connName string, cfg *Config) (newcfg *Config, err error)
数据库连接重构方法
View Source
var (
DateFormat = "2006-01-02 15:04:05"
)
View Source
var DecryptConn func(connName, conn string) (newConn string, err error) = defaultDecryptConn
DecryptConn 解密数据库链接
View Source
var Default = &Config{ MaxOpen: 10, MaxIdle: 5, LifeTime: 600, ShowQueryLog: false, LongQueryTime: 500, LoggerName: "dbslowsql", Debug: false, }
View Source
var ( //新建一个符号处理 NewOperator func(name string, callback OperatorCallback) Operator )
View Source
var ( //新建一个SqlState NewSqlState func(Placeholder) SqlState )
View Source
var ( // 新建一个请求参数处理器 NewStmtDbTypeProcessor func(matchers ...StmtDbTypeHandler) StmtDbTypeProcessor )
View Source
var ( // 新建一个模板匹配器 NewTemplateMatcher func(matchers ...ExpressionMatcher) TemplateMatcher )
Functions ¶
func DefaultIsNil ¶ added in v0.7.0
func DefaultIsNil(input interface{}) bool
func NewBuilder ¶
func NewBuilder() container.StandardBuilder
func NewPanicError ¶ added in v0.2.0
func RegistExpressionMatcher ¶ added in v0.7.0
func RegistExpressionMatcher(proto string, matcher ExpressionMatcher) (err error)
RegistExpressionMatcher 给数据库注册语法解析
func RegistTemplate ¶ added in v0.7.0
func RegistTemplate(tpl SQLTemplate) (err error)
RegistTemplate 注册模板
func RegisterDbType ¶ added in v0.2.5
func RegisterProtoDbType ¶ added in v0.7.0
func RegistryLogger ¶ added in v0.1.31
func RegistryLogger(logger Logger)
Types ¶
type Config ¶ added in v0.2.3
type Config struct { Proto string `json:"proto" valid:"required"` Conn string `json:"conn" valid:"required" label:"连接字符串"` MaxOpen int `json:"max_open" valid:"required" label:"最大打开连接数"` MaxIdle int `json:"max_idle" valid:"required" label:"最大空闲连接数"` LifeTime int `json:"life_time" valid:"required" label:"单个连接时长(秒)"` ShowQueryLog bool `json:"show_query_log" label:"开启慢查询日志"` LongQueryTime int `json:"long_query_time" label:"慢查询阈值(毫秒)"` LoggerName string `json:"logger_name" label:"日志提供程序"` Debug bool `json:"debug" label:"调试模式"` // contains filtered or unexported fields }
type DbParamConverter ¶ added in v0.7.0
type DynamicType ¶ added in v0.7.0
type DynamicType int
const ( DynamicNone DynamicType = 0 DynamicAnd DynamicType = 1 DynamicOr DynamicType = 2 DynamicReplace DynamicType = 4 )
type Executer ¶
type Executer interface { Query(ctx context.Context, sql string, input any, opts ...TemplateOption) (data Rows, err error) Multi(ctx context.Context, sql string, input any, opts ...TemplateOption) (data []Rows, err error) First(ctx context.Context, sql string, input any, opts ...TemplateOption) (data Row, err error) Scalar(ctx context.Context, sql string, input any, opts ...TemplateOption) (data interface{}, err error) Exec(ctx context.Context, sql string, input any, opts ...TemplateOption) (r Result, err error) QueryAs(ctx context.Context, sql string, input any, result any, opts ...TemplateOption) (err error) FirstAs(ctx context.Context, sql string, input any, result any, opts ...TemplateOption) (err error) }
Executer 数据库操作对象集合
type ExpressionBuildCallback ¶ added in v0.7.0
type ExpressionBuildCallback func(item ExpressionValuer, state SqlState, param DBParam) (expression string, err MissError)
表达式回调
type ExpressionCache ¶ added in v0.7.0
type ExpressionItem ¶ added in v0.7.0
type ExpressionItem struct { Matcher ExpressionMatcher FullField string PropName string Oper string Symbol Symbol ExpressionBuildCallback ExpressionBuildCallback }
func (*ExpressionItem) Build ¶ added in v0.7.0
func (m *ExpressionItem) Build(state SqlState, param DBParam) (expression string, err MissError)
func (*ExpressionItem) GetFullfield ¶ added in v0.7.0
func (m *ExpressionItem) GetFullfield() string
func (*ExpressionItem) GetMatcher ¶ added in v0.7.0
func (m *ExpressionItem) GetMatcher() ExpressionMatcher
func (*ExpressionItem) GetOper ¶ added in v0.7.0
func (m *ExpressionItem) GetOper() string
func (*ExpressionItem) GetOperatorCallback ¶ added in v0.7.0
func (m *ExpressionItem) GetOperatorCallback() (callback OperatorCallback, ok bool)
func (*ExpressionItem) GetPropName ¶ added in v0.7.0
func (m *ExpressionItem) GetPropName() string
func (*ExpressionItem) GetSymbol ¶ added in v0.7.0
func (m *ExpressionItem) GetSymbol() Symbol
type ExpressionMatcher ¶ added in v0.7.0
type ExpressionMatcher interface { Name() string //表达式名称 Pattern() string //表达式正则匹配 GetOperatorMap() OperatorMap //符号列表 MatchString(string) (ExpressionValuer, bool) //匹配执行 }
属性表达式匹配器
type ExpressionMatcherMap ¶ added in v0.7.0
type ExpressionMatcherMap interface { Regist(...ExpressionMatcher) Load(name string) (ExpressionMatcher, bool) Find(call func(matcher ExpressionMatcher) bool) ExpressionMatcher GetMatcherRegexp() *regexp.Regexp }
type ExpressionValuer ¶ added in v0.7.0
type ExpressionValuer interface { GetMatcher() ExpressionMatcher GetOperatorCallback() (callback OperatorCallback, ok bool) GetPropName() string GetFullfield() string GetOper() string GetSymbol() Symbol Build(state SqlState, input DBParam) (string, MissError) }
xdb表达式
type IDB ¶
type IDB interface { Executer Begin() (ITrans, error) Close() error GetImpl() interface{} Transaction(TransactionCallback) error }
IDB 数据库操作接口
type InvalidArgTypeError ¶ added in v0.5.0
func (InvalidArgTypeError) Error ¶ added in v0.5.0
func (e InvalidArgTypeError) Error() string
type Logger ¶ added in v0.1.31
type MatcherOption ¶ added in v0.7.0
type MatcherOption func(*MatcherOptions)
func WithBuildCallback ¶ added in v0.7.0
func WithBuildCallback(callback ExpressionBuildCallback) MatcherOption
WithBuildCallback 制定matcher的表达式生成回调
func WithOperator ¶ added in v0.7.0
func WithOperator(operator ...Operator) MatcherOption
WithOperator 增加一个符号处理函数 与WithOperatorMap 二选一
func WithOperatorMap ¶ added in v0.7.0
func WithOperatorMap(operatorMap OperatorMap) MatcherOption
WithOperatorMap 制定matcher的符号处理函数 与WithOperator 二选一
type MatcherOptions ¶ added in v0.7.0
type MatcherOptions struct { BuildCallback ExpressionBuildCallback OperatorMap OperatorMap }
type MissError ¶ added in v0.5.1
func NewMissDataTypeError ¶ added in v0.7.0
func NewMissOperError ¶ added in v0.5.1
func NewMissParamError ¶ added in v0.5.0
func NewMissPropError ¶ added in v0.7.0
func NewMissSymbolError ¶ added in v0.7.0
type MissListError ¶ added in v0.5.1
type MissListError interface {
Error() string
}
func NewMissListError ¶ added in v0.5.1
func NewMissListError(errList ...MissError) MissListError
type Operator ¶ added in v0.7.0
type Operator interface { Name() string Callback(valuer ExpressionValuer, param DBParam, phName string, value any) string }
Operator 操作符处理接口
type OperatorCallback ¶ added in v0.7.0
type OperatorCallback func(valuer ExpressionValuer, param DBParam, phName string, value any) string
OperatorCallback 操作符回调函数
type OperatorMap ¶ added in v0.7.0
type OperatorMap interface { //Store(name string, callback OperatorCallback) Load(name string) (Operator, bool) Clone() OperatorMap Range(func(name string, callback Operator) bool) }
OperatorMap 操作符映射接口
func NewOperatorMap ¶ added in v0.7.0
func NewOperatorMap(operators ...Operator) OperatorMap
NewOperatorMap 创建操作符映射
type Option ¶ added in v0.2.3
type Option func(*Config)
Option 配置选项
func WithLifeTime ¶ added in v0.2.3
func WithLoggerName ¶ added in v0.2.3
func WithLongQueryTime ¶ added in v0.2.3
func WithMaxIdle ¶ added in v0.2.3
func WithMaxOpen ¶ added in v0.2.3
func WithShowQueryLog ¶ added in v0.2.3
type PanicError ¶ added in v0.2.0
type Placeholder ¶ added in v0.7.0
type RawMessage ¶ added in v0.1.41
type RawMessage []byte
func (RawMessage) MarshalJSON ¶ added in v0.1.41
func (m RawMessage) MarshalJSON() ([]byte, error)
MarshalJSON returns m as the JSON encoding of m.
func (*RawMessage) UnmarshalJSON ¶ added in v0.1.41
func (m *RawMessage) UnmarshalJSON(data []byte) error
UnmarshalJSON sets *m to a copy of data.
type Resolver ¶ added in v0.7.1
type Resolver interface { Name() string Resolve(connName string, setting config.Config, opts ...Option) (interface{}, error) }
dbResover 定义配置文件转换方法
type SQLTemplate ¶ added in v0.7.0
type SQLTemplate interface { Name() string Placeholder() Placeholder //获取sql GetSQLContext(tpl string, input map[string]any, opts ...TemplateOption) (sql string, args []any, err error) //注册表达式匹配解析器 RegistExpressionMatcher(matchers ...ExpressionMatcher) //注册参数处理回调 RegistStmtDbTypeHandler(handler ...StmtDbTypeHandler) //处理一般表达式 HandleExpr(item SqlState, sqlTpl string, param DBParam) (sql string, err error) //获取sql状态 GetSqlState(*TemplateOptions) SqlState //sql状态释放 ReleaseSqlState(SqlState) //sql参数处理 StmtDbTypeWrap(param any, opt TagOptions) any }
Template 模板上下文
func GetTemplate ¶ added in v0.7.0
func GetTemplate(name string) (SQLTemplate, error)
GetDBTemplate 获取数据库上下文操作
type SqlState ¶ added in v0.7.0
type SqlState interface { GetNames() []string GetValues() []any UseExprCache() bool SetDynamic(DynamicType) HasDynamic(DynamicType) bool AppendExpr(propName string, value any) (phName string) CanCache() bool BuildCache(sql string) ExpressionCache WithPlaceholder(Placeholder) WithTemplateOptions(*TemplateOptions) Reset() }
SqlState 用户记录sql状态
type StandardDB ¶
type StandardDB interface { GetDB(name string, opts ...Option) (q IDB) GetImpl(name string, opts ...Option) interface{} }
StandardDB
func NewStandardDB ¶
func NewStandardDB(container container.Container) StandardDB
NewStandardDBs 创建DB
type StmtDbTypeHandler ¶ added in v0.7.7
type StmtDbTypeProcessor ¶ added in v0.7.7
type StmtDbTypeProcessor interface { // RegistHandler 注册表达式匹配器 RegistHandler(handler ...StmtDbTypeHandler) Process(param any, tagOpts TagOptions) any }
type StmtDbTypeWrap ¶ added in v0.7.7
type StmtDbTypeWrap = func(param any, opt TagOptions) any
type Symbol ¶ added in v0.7.0
type Symbol interface { Name() string Concat() string DynamicType() DynamicType }
符号接口
type SymbolCallback ¶ added in v0.7.0
符号回调函数
type SymbolMap ¶ added in v0.7.0
type SymbolMap interface { Regist(Symbol) Load(name string) (Symbol, bool) Delete(name string) Clone() SymbolMap }
func NewSymbolMap ¶ added in v0.7.0
NewSymbolMap 创建一个符号表
type SymbolType ¶ added in v0.7.0
type SymbolType int
const ( SymbolTypeNormal SymbolType = 1 SymbolTypeDymanic SymbolType = 2 SymbolTypeReplace SymbolType = 3 )
type TagOptions ¶ added in v0.7.7
type TagOptions = xreflect.TagOptions
type TemplateMatcher ¶ added in v0.7.0
type TemplateMatcher interface { // RegistMatcher 注册表达式匹配器 RegistMatcher(matcher ...ExpressionMatcher) // GenerateSQL 根据模板生成SQL语句 GenerateSQL(item SqlState, sqlTpl string, input DBParam) (sql string, err error) }
TemplateMatcher 模板匹配器
type TemplateOption ¶ added in v0.7.0
type TemplateOption func(*TemplateOptions)
type TransactionCallback ¶ added in v0.2.0
Click to show internal directories.
Click to hide internal directories.