Documentation
¶
Index ¶
- Constants
- Variables
- func AopProxyService(service interface{}, engine SessionEngine)
- func AopProxyServiceValue(service reflect.Value, engine SessionEngine)
- func CreateXml(tableName string, bean interface{}) []byte
- func LoadMapperXml(bytes []byte) (items map[string]etree.Token)
- func OutPutXml(pointer interface{})
- func Proxy(proxyPtr interface{}, ...)
- func ProxyValue(mapperValue reflect.Value, ...)
- func Snake(arg interface{}) string
- func SnakeStr(s string) string
- func WriteMapper(bean reflect.Value, xml []byte, sessionEngine SessionEngine)
- func WriteMapperByValue(value reflect.Value, xml []byte, sessionEngine SessionEngine)
- func WriteMapperPtrByEngine(ptr interface{}, xml []byte, sessionEngine SessionEngine)
- type DataSourceRouter
- type ElementType
- type Engine
- func (it *Engine) GetDBRouter() IDataSourceRouter
- func (it *Engine) GetExpression() ast.ExpressionEngine
- func (it *Engine) GetGoroutine() *GoroutineSessionMap
- func (it *Engine) GetLog() Log
- func (it *Engine) GetSessionFactory() *SessionFactory
- func (it *Engine) GetSqlBuilder() ISqlBuilder
- func (it *Engine) GetSqlResultDecoder() SqlResultDecoder
- func (it *Engine) GetTplDecoder() TemplateDecoder
- func (it *Engine) IsGoroutine() bool
- func (it *Engine) IsLog() bool
- func (it *Engine) IsPrintWarning() bool
- func (it *Engine) LogSystem() *LogSystem
- func (it *Engine) Name() string
- func (it *Engine) NewSession(mapperName string) (Session, error)
- func (it *Engine) Open(driverName, dataSourceLink string) (*sql.DB, error)
- func (it *Engine) SetDBRouter(router IDataSourceRouter)
- func (it *Engine) SetExpression(engine ast.ExpressionEngine)
- func (it *Engine) SetGoroutine(enable bool)
- func (it *Engine) SetLog(log Log)
- func (it *Engine) SetLogEnable(enable bool)
- func (it *Engine) SetPrintWarning(print bool)
- func (it *Engine) SetSessionFactory(factory *SessionFactory)
- func (it *Engine) SetSqlArgTypeConvert(convert ast.SqlArgTypeConvert)
- func (it *Engine) SetSqlBuilder(builder ISqlBuilder)
- func (it *Engine) SetSqlResultDecoder(decoder SqlResultDecoder)
- func (it *Engine) SetTplDecoder(decoder TemplateDecoder)
- func (it *Engine) Xml(mapperPtr interface{}, xml []byte)
- type ExpressionEngineLexerCache
- type ExpressionEngineLexerCacheable
- type ExpressionEngineLexerMapCache
- func (it *ExpressionEngineLexerMapCache) Get(expression string) (interface{}, error)
- func (it *ExpressionEngineLexerMapCache) Name() string
- func (it ExpressionEngineLexerMapCache) New() ExpressionEngineLexerMapCache
- func (it *ExpressionEngineLexerMapCache) Set(expression string, lexer interface{}) error
- type ExpressionProxy
- func (it *ExpressionProxy) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
- func (it *ExpressionProxy) Lexer(expression string) (interface{}, error)
- func (it *ExpressionProxy) LexerAndEval(expression string, arg interface{}) (interface{}, error)
- func (it *ExpressionProxy) LexerCache() ExpressionEngineLexerCache
- func (it *ExpressionProxy) LexerCacheable() bool
- func (it ExpressionProxy) Name() string
- func (it *ExpressionProxy) SetExpressionEngine(engine ast.ExpressionEngine)
- func (it *ExpressionProxy) SetLexerCache(cache ExpressionEngineLexerCache)
- func (it *ExpressionProxy) SetUseLexerCache(isUseCache bool) error
- type GoMybatisSqlArgTypeConvert
- type GoMybatisSqlResultDecoder
- type GoMybatisTempleteDecoder
- func (it *GoMybatisTempleteDecoder) Decode(method *reflect.StructField, mapper *etree.Element, ...) (bool, error)
- func (it *GoMybatisTempleteDecoder) DecodeCollectionName(method *reflect.StructField) string
- func (it *GoMybatisTempleteDecoder) DecodeSets(arg string, mapper *etree.Element, logic LogicDeleteData, ...)
- func (it *GoMybatisTempleteDecoder) DecodeTree(tree map[string]etree.Token, beanType reflect.Type) error
- func (it *GoMybatisTempleteDecoder) DecodeWheres(arg string, mapper *etree.Element, logic LogicDeleteData, ...)
- func (it *GoMybatisTempleteDecoder) SetPrintElement(print bool)
- type GoroutineSessionMap
- type IDataSourceRouter
- type ISqlBuilder
- type LocalSession
- func (it *LocalSession) Begin(p *tx.Propagation) error
- func (it *LocalSession) Close()
- func (it *LocalSession) Commit() error
- func (it *LocalSession) Exec(sqlorArgs string) (*Result, error)
- func (it *LocalSession) ExecPrepare(sqlPrepare string, args ...interface{}) (*Result, error)
- func (it *LocalSession) Id() string
- func (it *LocalSession) LastPROPAGATION() *tx.Propagation
- func (it LocalSession) New(driverType string, driverLink string, db *sql.DB, logSystem Log) LocalSession
- func (it *LocalSession) Query(sqlorArgs string) ([]map[string][]byte, error)
- func (it *LocalSession) QueryPrepare(sqlPrepare string, args ...interface{}) ([]map[string][]byte, error)
- func (it *LocalSession) Rollback() error
- func (it *LocalSession) StmtConvert() (stmt.StmtIndexConvert, error)
- type Log
- type LogStandard
- type LogSystem
- type LogicDeleteData
- type Mapper
- type ProxyArg
- type Result
- type ResultProperty
- type ReturnType
- type Session
- type SessionEngine
- type SessionFactory
- type SessionFactorySession
- func (it *SessionFactorySession) Begin(p *tx.Propagation) error
- func (it *SessionFactorySession) Close()
- func (it *SessionFactorySession) Commit() error
- func (it *SessionFactorySession) Exec(sqlorArgs string) (*Result, error)
- func (it *SessionFactorySession) ExecPrepare(sqlorArgs string, args ...interface{}) (*Result, error)
- func (it *SessionFactorySession) Id() string
- func (it *SessionFactorySession) LastPROPAGATION() *tx.Propagation
- func (it *SessionFactorySession) Query(sqlorArgs string) ([]map[string][]byte, error)
- func (it *SessionFactorySession) QueryPrepare(sqlorArgs string, args ...interface{}) ([]map[string][]byte, error)
- func (it *SessionFactorySession) Rollback() error
- func (it *SessionFactorySession) StmtConvert() (stmt.StmtIndexConvert, error)
- type SessionSupport
- type SessionType
- type SqlBuilder
- func (it *SqlBuilder) BuildSql(paramMap map[string]interface{}, nodes []ast.Node, arg_array *[]interface{}, ...) (string, error)
- func (it *SqlBuilder) EnableLog() bool
- func (it *SqlBuilder) ExpressionEngineProxy() *ExpressionProxy
- func (it *SqlBuilder) NodeParser() ast.NodeParser
- func (it *SqlBuilder) SetSqlLog(enable bool)
- type SqlResultDecoder
- type TagArg
- type TemplateDecoder
- type VersionData
Constants ¶
const Adapter_FormateDate = `2006-01-02 15:04:05`
const DefaultOneArg = `arg`
默认参数前缀,例如arg0 arg1 arg2 ....
const Element_Mapper = "mapper"
const GoMybatis_Session = `GoMybatis.Session`
const GoMybatis_Session_Ptr = `*GoMybatis.Session`
const GoMybatis_Time = `time.Time`
const GoMybatis_Time_Ptr = `*time.Time`
const ID = `id`
const NewSessionFunc = "NewSession" //NewSession method,auto write implement body code
Variables ¶
var ( IntType = reflect.TypeOf(c_INT_DEFAULT) Int8Type = reflect.TypeOf(c_INT8_DEFAULT) Int16Type = reflect.TypeOf(c_INT16_DEFAULT) Int32Type = reflect.TypeOf(c_INT32_DEFAULT) Int64Type = reflect.TypeOf(c_INT64_DEFAULT) UintType = reflect.TypeOf(c_UINT_DEFAULT) Uint8Type = reflect.TypeOf(c_UINT8_DEFAULT) Uint16Type = reflect.TypeOf(c_UINT16_DEFAULT) Uint32Type = reflect.TypeOf(c_UINT32_DEFAULT) Uint64Type = reflect.TypeOf(c_UINT64_DEFAULT) Float32Type = reflect.TypeOf(c_FLOAT32_DEFAULT) Float64Type = reflect.TypeOf(c_FLOAT64_DEFAULT) Complex64Type = reflect.TypeOf(c_COMPLEX64_DEFAULT) Complex128Type = reflect.TypeOf(c_COMPLEX128_DEFAULT) StringType = reflect.TypeOf(c_EMPTY_STRING) BoolType = reflect.TypeOf(c_BOOL_DEFAULT) ByteType = reflect.TypeOf(c_BYTE_DEFAULT) BytesType = reflect.SliceOf(ByteType) TimeType = reflect.TypeOf(c_TIME_DEFAULT) )
var ( PtrIntType = reflect.PtrTo(IntType) PtrInt8Type = reflect.PtrTo(Int8Type) PtrInt16Type = reflect.PtrTo(Int16Type) PtrInt32Type = reflect.PtrTo(Int32Type) PtrInt64Type = reflect.PtrTo(Int64Type) PtrUintType = reflect.PtrTo(UintType) PtrUint8Type = reflect.PtrTo(Uint8Type) PtrUint16Type = reflect.PtrTo(Uint16Type) PtrUint32Type = reflect.PtrTo(Uint32Type) PtrUint64Type = reflect.PtrTo(Uint64Type) PtrFloat32Type = reflect.PtrTo(Float32Type) PtrFloat64Type = reflect.PtrTo(Float64Type) PtrComplex64Type = reflect.PtrTo(Complex64Type) PtrComplex128Type = reflect.PtrTo(Complex128Type) PtrStringType = reflect.PtrTo(StringType) PtrBoolType = reflect.PtrTo(BoolType) PtrByteType = reflect.PtrTo(ByteType) PtrTimeType = reflect.PtrTo(TimeType) )
Functions ¶
func AopProxyService ¶
func AopProxyService(service interface{}, engine SessionEngine)
使用AOP切面 代理目标服务,如果服务painc()它的事务会回滚 默认为单协程模型,如果是多协程调用的情况请开启engine.SetGoroutineIDEnable(true)
func AopProxyServiceValue ¶
func AopProxyServiceValue(service reflect.Value, engine SessionEngine)
使用AOP切面 代理目标服务,如果服务painc()它的事务会回滚
func CreateXml ¶
* //例子
//GoMybatis当前是以xml内容为主gm:""注解只是生成xml的时候使用 //定义数据库模型, gm:"id"表示输出id的xml,gm:"version"表示为输出版本号的xml,gm:"logic"表示输出逻辑删除xml
type TestActivity struct { Id string `json:"id" gm:"id"` Uuid string `json:"uuid"` Name string `json:"name"` PcLink string `json:"pcLink"` H5Link string `json:"h5Link"` Remark string `json:"remark"` Version int `json:"version" gm:"version"` CreateTime time.Time `json:"createTime"` DeleteFlag int `json:"deleteFlag" gm:"logic"` }
func TestUserAddres(t *testing.T) { var s=utils.CreateDefaultXml("biz_user_address",TestActivity{})//创建xml内容 utils.OutPutXml("D:/GOPATH/src/dao/ActivityMapper.xml",[]byte(s))//写入磁盘 }
根据结构体 创建xml文件.注意 结构体json对应的是数据库的column
func Proxy ¶
func Proxy(proxyPtr interface{}, buildFunc func(funcField reflect.StructField, field reflect.Value) func(arg ProxyArg) []reflect.Value)
AopProxy 可写入每个函数代理方法.proxyPtr:代理对象指针,buildFunc:构建代理函数
func ProxyValue ¶
func ProxyValue(mapperValue reflect.Value, buildFunc func(funcField reflect.StructField, field reflect.Value) func(arg ProxyArg) []reflect.Value)
AopProxy 可写入每个函数代理方法
func Snake ¶
func Snake(arg interface{}) string
(原StructToSnakeString)结构体名称转蛇形名称 例如 pcLink = pc_link
func WriteMapper ¶
func WriteMapper(bean reflect.Value, xml []byte, sessionEngine SessionEngine)
写入方法内容,例如
type ExampleActivityMapperImpl struct { SelectAll func(result *[]Activity) error SelectByCondition func(name string, startTime time.Time, endTime time.Time, page int, size int, result *[]Activity) error `args:"name,startTime,endTime,page,size"` UpdateById func(session *GoMybatis.Session, arg Activity, result *int64) error //只要参数中包含有*GoMybatis.Session的类型,框架默认使用传入的session对象,用于自定义事务 Insert func(arg Activity, result *int64) error CountByCondition func(name string, startTime time.Time, endTime time.Time, result *int) error `args:"name,startTime,endTime"` }
func的基本类型的参数(例如string,int,time.Time,int64,float....)个数无限制(并且需要用Tag指定参数名逗号隔开,例如`args:"id,phone"`),返回值必须有error func的结构体参数无需指定args的tag,框架会自动扫描它的属性,封装为map处理掉 使用WriteMapper函数设置代理后即可正常使用。
func WriteMapperByValue ¶
func WriteMapperByValue(value reflect.Value, xml []byte, sessionEngine SessionEngine)
推荐默认使用单例传入 根据sessionEngine写入到mapperPtr,value:指向mapper指针反射对象,xml:xml数据,sessionEngine:session引擎,enableLog:是否允许日志输出,log:日志实现
func WriteMapperPtrByEngine ¶
func WriteMapperPtrByEngine(ptr interface{}, xml []byte, sessionEngine SessionEngine)
推荐默认使用单例传入 根据sessionEngine写入到mapperPtr,ptr:指向mapper指针,xml:xml数据,sessionEngine:session引擎,enableLog:是否允许日志输出,log:日志实现
Types ¶
type DataSourceRouter ¶
type DataSourceRouter struct {
// contains filtered or unexported fields
}
动态数据源路由(原GoMybatisDataSourceRouter)
func NewRouter ¶
func NewRouter(routerFunc func(mapperName string) *string) DataSourceRouter
初始化路由,routerFunc为nil或者routerFunc返回nil,则框架自行选择第一个数据库作为数据源
func (*DataSourceRouter) Name ¶
func (it *DataSourceRouter) Name() string
func (*DataSourceRouter) Router ¶
func (it *DataSourceRouter) Router(mapperName string, engine SessionEngine) (Session, error)
type ElementType ¶
type ElementType = string
const ( //root elements Element_ResultMap ElementType = "resultMap" Element_Insert ElementType = "insert" Element_Delete ElementType = "delete" Element_Update ElementType = `update` Element_Select ElementType = "select" Element_Sql ElementType = "sql" //root templete elements //Element_Insert_Templete ElementType = "insertTpl" // Element_Insert_Templete ElementType = "insertTemplete" //Element_Delete_Templete ElementType = "deleteTpl" // Element_Delete_Templete ElementType = "deleteTemplete" //Element_Update_Templete ElementType = `updateTpl` // Element_Update_Templete ElementType = `updateTemplete` //Element_Select_Templete ElementType = "selectTpl" // Element_Select_Templete ElementType = "selectTemplete" //child elements Element_bind ElementType = "bind" Element_String ElementType = "string" // Element_If ElementType = `if` Element_Trim ElementType = "trim" //Element_Foreach ElementType = "for" // Element_Foreach ElementType = "foreach" // Element_Set ElementType = "set" //Element_choose ElementType = "switch" // Element_choose ElementType = "choose" // //Element_when ElementType = "case" // Element_when ElementType = "when" // //Element_otherwise ElementType = "else" // Element_otherwise ElementType = "otherwise" // Element_where ElementType = "where" Element_Include ElementType = "include" )
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
原 GoMybatisEngine
func (*Engine) GetDBRouter ¶
func (it *Engine) GetDBRouter() IDataSourceRouter
func (*Engine) GetExpression ¶
func (it *Engine) GetExpression() ast.ExpressionEngine
(原ExpressionEngine)获取表达式执行引擎
func (*Engine) GetGoroutine ¶
func (it *Engine) GetGoroutine() *GoroutineSessionMap
(GoroutineSessionMap)
func (*Engine) GetSqlResultDecoder ¶
func (it *Engine) GetSqlResultDecoder() SqlResultDecoder
sql查询结果解析器
func (*Engine) IsPrintWarning ¶
func (*Engine) Open ¶
打开数据库驱动,初始化连接池放入路由。 sql.DB 就是连接池,可以自定义活跃连接数,具体使用参考官方文档 driverName: 驱动名称例如"mysql", dataSourceName: string 数据库url
func (*Engine) SetDBRouter ¶
func (it *Engine) SetDBRouter(router IDataSourceRouter)
func (*Engine) SetExpression ¶
func (it *Engine) SetExpression(engine ast.ExpressionEngine)
设置表达式执行引擎
func (*Engine) SetGoroutine ¶
func (*Engine) SetPrintWarning ¶
func (*Engine) SetSessionFactory ¶
func (it *Engine) SetSessionFactory(factory *SessionFactory)
设置session工厂
func (*Engine) SetSqlArgTypeConvert ¶
func (it *Engine) SetSqlArgTypeConvert(convert ast.SqlArgTypeConvert)
设置sql类型转换器
func (*Engine) SetSqlResultDecoder ¶
func (it *Engine) SetSqlResultDecoder(decoder SqlResultDecoder)
设置sql查询结果解析器
type ExpressionEngineLexerCache ¶
type ExpressionEngineLexerCache interface { Set(expression string, lexer interface{}) error Get(expression string) (interface{}, error) Name() string }
Lexer 结果缓存
type ExpressionEngineLexerMapCache ¶
type ExpressionEngineLexerMapCache struct {
// contains filtered or unexported fields
}
func (*ExpressionEngineLexerMapCache) Get ¶
func (it *ExpressionEngineLexerMapCache) Get(expression string) (interface{}, error)
func (*ExpressionEngineLexerMapCache) Name ¶
func (it *ExpressionEngineLexerMapCache) Name() string
func (ExpressionEngineLexerMapCache) New ¶
func (it ExpressionEngineLexerMapCache) New() ExpressionEngineLexerMapCache
func (*ExpressionEngineLexerMapCache) Set ¶
func (it *ExpressionEngineLexerMapCache) Set(expression string, lexer interface{}) error
type ExpressionProxy ¶
type ExpressionProxy struct {
// contains filtered or unexported fields
}
表达式引擎代理
func NewExpressionProxy ¶
func NewExpressionProxy(engine ast.ExpressionEngine, useLexerCache bool) ExpressionProxy
engine :表达式引擎,useLexerCache:是否缓存Lexer表达式编译结果
func (*ExpressionProxy) Eval ¶
func (it *ExpressionProxy) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误
func (*ExpressionProxy) Lexer ¶
func (it *ExpressionProxy) Lexer(expression string) (interface{}, error)
编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误
func (*ExpressionProxy) LexerAndEval ¶
func (it *ExpressionProxy) LexerAndEval(expression string, arg interface{}) (interface{}, error)
执行
func (*ExpressionProxy) LexerCache ¶
func (it *ExpressionProxy) LexerCache() ExpressionEngineLexerCache
func (*ExpressionProxy) LexerCacheable ¶
func (it *ExpressionProxy) LexerCacheable() bool
func (*ExpressionProxy) SetExpressionEngine ¶
func (it *ExpressionProxy) SetExpressionEngine(engine ast.ExpressionEngine)
引擎名称
func (*ExpressionProxy) SetLexerCache ¶
func (it *ExpressionProxy) SetLexerCache(cache ExpressionEngineLexerCache)
func (*ExpressionProxy) SetUseLexerCache ¶
func (it *ExpressionProxy) SetUseLexerCache(isUseCache bool) error
type GoMybatisSqlArgTypeConvert ¶
type GoMybatisSqlArgTypeConvert struct { }
Sql内容类型转换器
func (GoMybatisSqlArgTypeConvert) Convert ¶
func (it GoMybatisSqlArgTypeConvert) Convert(argValue interface{}) string
Sql内容类型转换器
type GoMybatisSqlResultDecoder ¶
type GoMybatisSqlResultDecoder struct {
SqlResultDecoder
}
func (GoMybatisSqlResultDecoder) Decode ¶
func (it GoMybatisSqlResultDecoder) Decode(resultMap map[string]*ResultProperty, sqlResult []map[string][]byte, result interface{}) error
type GoMybatisTempleteDecoder ¶
type GoMybatisTempleteDecoder struct {
// contains filtered or unexported fields
}
* TODO sqlTemplete解析器,目前直接操作*etree.Element实现,后期应该改成操作xml,换取更好的维护性
func (*GoMybatisTempleteDecoder) Decode ¶
func (it *GoMybatisTempleteDecoder) Decode(method *reflect.StructField, mapper *etree.Element, tree map[string]etree.Token) (bool, error)
func (*GoMybatisTempleteDecoder) DecodeCollectionName ¶
func (it *GoMybatisTempleteDecoder) DecodeCollectionName(method *reflect.StructField) string
反射解码得到 集合名词
func (*GoMybatisTempleteDecoder) DecodeSets ¶
func (it *GoMybatisTempleteDecoder) DecodeSets(arg string, mapper *etree.Element, logic LogicDeleteData, versionData *VersionData)
func (*GoMybatisTempleteDecoder) DecodeTree ¶
func (*GoMybatisTempleteDecoder) DecodeWheres ¶
func (it *GoMybatisTempleteDecoder) DecodeWheres(arg string, mapper *etree.Element, logic LogicDeleteData, versionData *VersionData)
解码逗号分隔的where
func (*GoMybatisTempleteDecoder) SetPrintElement ¶
func (it *GoMybatisTempleteDecoder) SetPrintElement(print bool)
type GoroutineSessionMap ¶
type GoroutineSessionMap struct {
// contains filtered or unexported fields
}
func (*GoroutineSessionMap) Delete ¶
func (it *GoroutineSessionMap) Delete(k int64)
func (*GoroutineSessionMap) Get ¶
func (it *GoroutineSessionMap) Get(k int64) Session
func (GoroutineSessionMap) New ¶
func (it GoroutineSessionMap) New() GoroutineSessionMap
func (*GoroutineSessionMap) Put ¶
func (it *GoroutineSessionMap) Put(k int64, session Session)
type IDataSourceRouter ¶
type IDataSourceRouter interface { //路由规则 //参数:mapperName mapper文件包名+名称例如(example.ExampleActivityMapper) //返回(session,error)路由选择后的session,error异常 Router(mapperName string, engine SessionEngine) (Session, error) //设置sql.DB,该方法会被GoMybatis框架内调用 SetDB(driverName string, url string, db *sql.DB) Name() string }
数据源路由接口
type ISqlBuilder ¶
type ISqlBuilder interface { BuildSql(paramMap map[string]interface{}, nodes []ast.Node, arg_array *[]interface{}, stmtConvert stmt.StmtIndexConvert) (string, error) ExpressionEngineProxy() *ExpressionProxy SetSqlLog(enable bool) // (原SetEnableLog) EnableLog() bool NodeParser() ast.NodeParser }
sql文本构建
type LocalSession ¶
type LocalSession struct { SessionId string // contains filtered or unexported fields }
本地直连session
func (*LocalSession) Begin ¶
func (it *LocalSession) Begin(p *tx.Propagation) error
func (*LocalSession) Close ¶
func (it *LocalSession) Close()
func (*LocalSession) Commit ¶
func (it *LocalSession) Commit() error
func (*LocalSession) ExecPrepare ¶
func (it *LocalSession) ExecPrepare(sqlPrepare string, args ...interface{}) (*Result, error)
func (*LocalSession) Id ¶
func (it *LocalSession) Id() string
func (*LocalSession) LastPROPAGATION ¶
func (it *LocalSession) LastPROPAGATION() *tx.Propagation
func (LocalSession) New ¶
func (it LocalSession) New(driverType string, driverLink string, db *sql.DB, logSystem Log) LocalSession
func (*LocalSession) Query ¶
func (it *LocalSession) Query(sqlorArgs string) ([]map[string][]byte, error)
func (*LocalSession) QueryPrepare ¶
func (it *LocalSession) QueryPrepare(sqlPrepare string, args ...interface{}) ([]map[string][]byte, error)
func (*LocalSession) Rollback ¶
func (it *LocalSession) Rollback() error
func (*LocalSession) StmtConvert ¶
func (it *LocalSession) StmtConvert() (stmt.StmtIndexConvert, error)
type LogStandard ¶
type LogStandard struct {
PrintlnFunc func(messages []byte) //日志输出方法实现
}
type LogSystem ¶
type LogSystem struct {
// contains filtered or unexported fields
}
func NewLogSystem ¶
logImpl:日志实现类,queueLen:消息队列缓冲长度
type LogicDeleteData ¶
type ResultProperty ¶
type ReturnType ¶
type Session ¶
type Session interface { Id() string Query(sqlOrArgs string) ([]map[string][]byte, error) Exec(sqlOrArgs string) (*Result, error) //Prepare sql, example sqlPrepare: select * from table where id = ? , args:'1' QueryPrepare(sqlPrepare string, args ...interface{}) ([]map[string][]byte, error) //Prepare sql, example sqlPrepare: select * from table where id = ? , args:'1' ExecPrepare(sqlPrepare string, args ...interface{}) (*Result, error) Rollback() error Commit() error Begin(p *tx.Propagation) error Close() LastPROPAGATION() *tx.Propagation StmtConvert() (stmt.StmtIndexConvert, error) }
type SessionEngine ¶
type SessionEngine interface { //打开数据库 Open(driverName, dataSourceLink string) (*sql.DB, error) //(原WriteMapperPtr)把xml文件加载到mapper中 Xml(mapperPtr interface{}, xml []byte) //引擎名称 Name() string //创建session NewSession(mapperName string) (Session, error) //获取数据源路由 GetDBRouter() IDataSourceRouter //设置数据源路由 SetDBRouter(router IDataSourceRouter) //是否启用日志 IsLog() bool //是否启用日志 SetLogEnable(enable bool) //(原Log)获取日志实现类 GetLog() Log //设置日志实现类 SetLog(log Log) //session工厂 GetSessionFactory() *SessionFactory //设置session工厂 SetSessionFactory(factory *SessionFactory) //设置sql类型转换器 SetSqlArgTypeConvert(convert ast.SqlArgTypeConvert) //表达式执行引擎 GetExpression() ast.ExpressionEngine //设置表达式执行引擎 SetExpression(engine ast.ExpressionEngine) //sql构建器 GetSqlBuilder() ISqlBuilder //设置sql构建器 SetSqlBuilder(builder ISqlBuilder) //sql查询结果解析器 GetSqlResultDecoder() SqlResultDecoder //设置sql查询结果解析器 SetSqlResultDecoder(decoder SqlResultDecoder) //模板解析器 GetTplDecoder() TemplateDecoder //设置模板解析器 SetTplDecoder(decoder TemplateDecoder) //(注意(该方法需要在多协程环境下调用)启用会从栈获取协程id,有一定性能消耗,换取最大的事务定义便捷) GetGoroutine() *GoroutineSessionMap //是否启用goroutineIDEnable(注意(该方法需要在多协程环境下调用)启用会从栈获取协程id,有一定性能消耗,换取最大的事务定义便捷) SetGoroutine(enable bool) //(原GoroutineIDEnable)是否启用goroutineIDEnable(注意(该方法需要在多协程环境下调用)启用会从栈获取协程id,有一定性能消耗,换取最大的事务定义便捷) IsGoroutine() bool LogSystem() *LogSystem IsPrintWarning() bool }
产生session的引擎
type SessionFactory ¶
type SessionFactory struct { Engine SessionEngine SessionMap sync.Map //map[string]Session }
func NewSessionFactory ¶
func NewSessionFactory(Engine SessionEngine) SessionFactory
func (*SessionFactory) Close ¶
func (it *SessionFactory) Close(id string)
func (*SessionFactory) CloseAll ¶
func (it *SessionFactory) CloseAll(id string)
func (*SessionFactory) GetSession ¶
func (it *SessionFactory) GetSession(id string) Session
func (*SessionFactory) NewSession ¶
func (it *SessionFactory) NewSession(mapperName string, sessionType SessionType) Session
func (*SessionFactory) SetSession ¶
func (it *SessionFactory) SetSession(id string, session Session)
type SessionFactorySession ¶
type SessionFactorySession struct { Session Session Factory *SessionFactory }
func (*SessionFactorySession) Begin ¶
func (it *SessionFactorySession) Begin(p *tx.Propagation) error
func (*SessionFactorySession) Close ¶
func (it *SessionFactorySession) Close()
func (*SessionFactorySession) Commit ¶
func (it *SessionFactorySession) Commit() error
func (*SessionFactorySession) Exec ¶
func (it *SessionFactorySession) Exec(sqlorArgs string) (*Result, error)
func (*SessionFactorySession) ExecPrepare ¶
func (it *SessionFactorySession) ExecPrepare(sqlorArgs string, args ...interface{}) (*Result, error)
func (*SessionFactorySession) Id ¶
func (it *SessionFactorySession) Id() string
func (*SessionFactorySession) LastPROPAGATION ¶
func (it *SessionFactorySession) LastPROPAGATION() *tx.Propagation
func (*SessionFactorySession) Query ¶
func (it *SessionFactorySession) Query(sqlorArgs string) ([]map[string][]byte, error)
func (*SessionFactorySession) QueryPrepare ¶
func (it *SessionFactorySession) QueryPrepare(sqlorArgs string, args ...interface{}) ([]map[string][]byte, error)
func (*SessionFactorySession) Rollback ¶
func (it *SessionFactorySession) Rollback() error
func (*SessionFactorySession) StmtConvert ¶
func (it *SessionFactorySession) StmtConvert() (stmt.StmtIndexConvert, error)
type SessionSupport ¶
type SessionType ¶
type SessionType = int
const ( SessionType_Default SessionType = iota //默认session类型 SessionType_Local //本地session )
type SqlBuilder ¶
type SqlBuilder struct {
// contains filtered or unexported fields
}
func NewSqlBuilder ¶
func NewSqlBuilder(expressionEngine ExpressionProxy, log Log, enableLog bool) SqlBuilder
func (*SqlBuilder) BuildSql ¶
func (it *SqlBuilder) BuildSql(paramMap map[string]interface{}, nodes []ast.Node, arg_array *[]interface{}, stmtConvert stmt.StmtIndexConvert) (string, error)
func (*SqlBuilder) EnableLog ¶
func (it *SqlBuilder) EnableLog() bool
func (*SqlBuilder) ExpressionEngineProxy ¶
func (it *SqlBuilder) ExpressionEngineProxy() *ExpressionProxy
func (*SqlBuilder) NodeParser ¶
func (it *SqlBuilder) NodeParser() ast.NodeParser
func (*SqlBuilder) SetSqlLog ¶
func (it *SqlBuilder) SetSqlLog(enable bool)
type SqlResultDecoder ¶
type SqlResultDecoder interface { //resultMap = in xml resultMap element //dbData = select the SqlResult //decodeResultPtr = need decode result type Decode(resultMap map[string]*ResultProperty, SqlResult []map[string][]byte, decodeResultPtr interface{}) error }
sql查询结果解码
type TemplateDecoder ¶
type VersionData ¶
Source Files
¶
- 10_go_mybatis_sql_builder.go
- 11_go_mybatis_sql_result_decoder.go
- 12_go_mybatis_sql_argtype_convert.go
- 13_go_mybatis_rows_decoder.go
- 14_go_mybatis_return_type.go
- 15_go_mybatis_enable_type.go
- 16_go_mybatis_data_source_router.go
- 17_go_mybatis_const.go
- 18_go_mybatis_templete_decoder.go
- 19_go_mybatis.go
- 1_element_type.go
- 1_type.go
- 20_go_mybatis_engine.go
- 21_log.go
- 2_datasource_router.go
- 2_expression_engine_lexer_cache.go
- 2_expression_engine_lexer_cacheable.go
- 2_expression_engine_lexer_mapcache.go
- 2_expression_engine_proxy.go
- 3_goroutine_session_map.go
- 3_sql_builder_interface.go
- 3_sql_engine_interface.go
- 4_session_factory.go
- 4_session_factory_session.go
- 4_session_support.go
- 4_session_type.go
- 5_result_map.go
- 5_sql_result_decoder.go
- 6_templete_decoder.go
- 7_proxy_arg.go
- 7_transaction_aspect_support.go
- 8_go_mybatis_proxy.go
- 9_xml_create.go
- 9_xml_loader.go
Directories
¶
Path | Synopsis |
---|---|
Package snowflake provides a very simple Twitter snowflake generator and parser.
|
Package snowflake provides a very simple Twitter snowflake generator and parser. |
lib
|
|
beevik/etree
Package etree provides XML services through an Element Tree abstraction.
|
Package etree provides XML services through an Element Tree abstraction. |
google/uuid
Package uuid generates and inspects UUIDs.
|
Package uuid generates and inspects UUIDs. |