Documentation
¶
Index ¶
- Constants
- Variables
- func LoadMapperXml(bytes []byte) (items map[string]*MapperXml)
- func ServerTransationTcp(addr string, driverName, dataSourceName string)
- func UseMapper(mapper interface{}, ...)
- func UseMapperValue(mapperValue reflect.Value, ...)
- func WriteMapper(bean reflect.Value, xml []byte, sessionFactory *SessionFactory, ...)
- func WriteMapperByValue(value reflect.Value, xml []byte, sessionEngine SessionEngine)
- func WriteMapperPtrByEngine(ptr interface{}, xml []byte, sessionEngine SessionEngine)
- type ActionType
- type DataSourceRouter
- type DefaultTransationManager
- func (it DefaultTransationManager) Commit(mapperName string, transactionId string) error
- func (it DefaultTransationManager) DoAction(dto TransactionReqDTO, transcationStatus *TransactionStatus) TransactionRspDTO
- func (it DefaultTransationManager) DoTransaction(dto TransactionReqDTO) TransactionRspDTO
- func (it DefaultTransationManager) GetTransaction(mapperName string, def *TransactionDefinition, transactionId string, ...) (*TransactionStatus, error)
- func (it DefaultTransationManager) New(SessionFactory *SessionFactory, TransactionFactory *TransactionFactory) DefaultTransationManager
- func (it DefaultTransationManager) Rollback(mapperName string, transactionId string) error
- type ElementItem
- type ElementType
- type ExpressionEngine
- type ExpressionEngineExpr
- func (it *ExpressionEngineExpr) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
- func (it *ExpressionEngineExpr) Lexer(expression string) (interface{}, error)
- func (it *ExpressionEngineExpr) LexerCache() ExpressionEngineLexerCache
- func (it *ExpressionEngineExpr) Name() string
- type ExpressionEngineGovaluate
- func (it *ExpressionEngineGovaluate) Eval(compileResult interface{}, arg interface{}, operation int) (interface{}, error)
- func (it *ExpressionEngineGovaluate) Lexer(expression string) (interface{}, error)
- func (it *ExpressionEngineGovaluate) LexerCache() ExpressionEngineLexerCache
- func (it *ExpressionEngineGovaluate) Name() string
- type ExpressionEngineJee
- func (it *ExpressionEngineJee) Eval(compileResult interface{}, arg interface{}, operation int) (interface{}, error)
- func (it *ExpressionEngineJee) Lexer(lexerArg string) (interface{}, error)
- func (it *ExpressionEngineJee) LexerAndOrSupport(lexerArg string) string
- func (it *ExpressionEngineJee) LexerCache() ExpressionEngineLexerCache
- func (it *ExpressionEngineJee) LexerEval(lexerArg string, arg interface{}, operation int) (interface{}, error)
- func (it *ExpressionEngineJee) Name() string
- type ExpressionEngineLexerCache
- type ExpressionEngineLexerCacheable
- type ExpressionEngineLexerMapCache
- type ExpressionEngineProxy
- func (it *ExpressionEngineProxy) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
- func (it *ExpressionEngineProxy) Lexer(expression string) (interface{}, error)
- func (it *ExpressionEngineProxy) LexerCache() ExpressionEngineLexerCache
- func (it *ExpressionEngineProxy) LexerCacheable() bool
- func (it ExpressionEngineProxy) Name() string
- func (ExpressionEngineProxy) New(engine ExpressionEngine, useLexerCache bool) ExpressionEngineProxy
- func (it *ExpressionEngineProxy) SetUseLexerCache(isUseCache bool) error
- type ExpressionOperation
- type GoMybatisDataSourceRouter
- type GoMybatisEngine
- func (it *GoMybatisEngine) DBMap() map[string]*sql.DB
- func (it *GoMybatisEngine) DataSourceRouter() DataSourceRouter
- func (it *GoMybatisEngine) ExpressionEngine() ExpressionEngine
- func (it *GoMybatisEngine) Log() Log
- func (it *GoMybatisEngine) LogEnable() bool
- func (it *GoMybatisEngine) Name() string
- func (it GoMybatisEngine) New() GoMybatisEngine
- func (it *GoMybatisEngine) NewSession(mapperName string) (Session, error)
- func (it *GoMybatisEngine) Open(driverName, dataSourceName string) error
- func (it *GoMybatisEngine) SessionFactory() *SessionFactory
- func (it *GoMybatisEngine) SetDataSourceRouter(router DataSourceRouter)
- func (it *GoMybatisEngine) SetExpressionEngine(engine ExpressionEngine)
- func (it *GoMybatisEngine) SetLog(log Log)
- func (it *GoMybatisEngine) SetLogEnable(enable bool)
- func (it *GoMybatisEngine) SetSessionFactory(factory *SessionFactory)
- func (it *GoMybatisEngine) SetSqlArgTypeConvert(convert SqlArgTypeConvert)
- func (it *GoMybatisEngine) SetSqlBuilder(builder SqlBuilder)
- func (it *GoMybatisEngine) SetSqlResultDecoder(decoder SqlResultDecoder)
- func (it *GoMybatisEngine) SqlArgTypeConvert() SqlArgTypeConvert
- func (it *GoMybatisEngine) SqlBuilder() SqlBuilder
- func (it *GoMybatisEngine) SqlResultDecoder() SqlResultDecoder
- func (it *GoMybatisEngine) WriteMapperPtr(ptr interface{}, xml []byte)
- type GoMybatisSqlArgTypeConvert
- type GoMybatisSqlBuilder
- func (it GoMybatisSqlBuilder) BuildSql(paramMap map[string]interface{}, mapperXml *MapperXml) (string, error)
- func (it GoMybatisSqlBuilder) ExpressionEngineProxy() ExpressionEngineProxy
- func (it GoMybatisSqlBuilder) LogSystem() *LogSystem
- func (it GoMybatisSqlBuilder) New(SqlArgTypeConvert SqlArgTypeConvert, expressionEngine ExpressionEngineProxy, ...) GoMybatisSqlBuilder
- func (it GoMybatisSqlBuilder) SqlArgTypeConvert() SqlArgTypeConvert
- type GoMybatisSqlResultDecoder
- type ISOLATION
- type LocalSession
- func (it *LocalSession) Begin() error
- func (it *LocalSession) Close()
- func (it *LocalSession) Commit() error
- func (it *LocalSession) Exec(sqlorArgs string) (*Result, error)
- func (it *LocalSession) Id() string
- func (it *LocalSession) Query(sqlorArgs string) ([]map[string][]byte, error)
- func (it *LocalSession) Rollback() error
- type Log
- type LogStandard
- type LogSystem
- type MapperXml
- type PROPAGATION
- type RemoteSessionEngine
- type Result
- type ResultProperty
- type ReturnType
- type Session
- type SessionEngine
- type SessionFactory
- func (it *SessionFactory) Close(id string)
- func (it *SessionFactory) CloseAll(id string)
- func (it *SessionFactory) GetSession(id string) Session
- func (it SessionFactory) New(Engine SessionEngine) SessionFactory
- func (it *SessionFactory) NewSession(mapperName string, sessionType SessionType, config *TransationRMClientConfig) Session
- func (it *SessionFactory) SetSession(id string, session Session)
- type SessionFactorySession
- func (it *SessionFactorySession) Begin() error
- func (it *SessionFactorySession) Close()
- func (it *SessionFactorySession) Commit() error
- func (it *SessionFactorySession) Exec(sqlorArgs string) (*Result, error)
- func (it *SessionFactorySession) Id() string
- func (it *SessionFactorySession) Query(sqlorArgs string) ([]map[string][]byte, error)
- func (it *SessionFactorySession) Rollback() error
- type SessionType
- type SqlArgTypeConvert
- type SqlBuilder
- type SqlResultDecoder
- type TagArg
- type Transaction
- type TransactionDefinition
- type TransactionFactory
- func (it *TransactionFactory) Append(mapperName string, transactionId string, transaction TransactionStatus)
- func (it *TransactionFactory) GetTransactionStatus(mapperName string, transactionId string) (*TransactionStatus, error)
- func (it TransactionFactory) New(SessionFactory *SessionFactory) TransactionFactory
- func (it *TransactionFactory) SetTransactionStatus(transactionId string, transaction *TransactionStatus)
- type TransactionManager
- type TransactionReqDTO
- type TransactionRspDTO
- type TransactionStatus
- type Transaction_Status
- type TransationRMClient
- type TransationRMClientConfig
- type TransationRMServer
- type TransationRMSession
- func (it *TransationRMSession) Begin() error
- func (it *TransationRMSession) Close()
- func (it *TransationRMSession) Commit() error
- func (it *TransationRMSession) Exec(sqlorArgs string) (*Result, error)
- func (it *TransationRMSession) Id() string
- func (it TransationRMSession) New(mapperName string, TransactionId string, Client *TransationRMClient, ...) *Session
- func (it *TransationRMSession) Query(sqlorArgs string) ([]map[string][]byte, error)
- func (it *TransationRMSession) Rollback() error
Constants ¶
const Adapter_FormateDate = `2006-01-02 15:04:05`
const CallMethod = "TransationRMServer.Msg"
const ConnectError = "connection is shut down"
const DefaultOneArg = `[default]`
const DefaultOverrides = ","
const DefaultWhereElement_Prefix = "where"
const DefaultWhereElement_PrefixOverrides = "and |or |And |Or |AND |OR "
const Element_Mapper = "mapper"
const EtreeCharData = `*etree.CharData`
const EtreeElement = `*etree.Element`
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 LoadMapperXml ¶
load xml from string data,return a map[elementId]*MapperXml
func ServerTransationTcp ¶
开启一个事务节点
func UseMapper ¶
func UseMapper(mapper interface{}, proxyFunc func(method string, args []reflect.Value, tagArgs []TagArg) []reflect.Value)
UseService 可写入每个函数代理方法
func UseMapperValue ¶
func UseMapperValue(mapperValue reflect.Value, proxyFunc func(method string, args []reflect.Value, tagArgs []TagArg) []reflect.Value)
UseService 可写入每个函数代理方法
func WriteMapper ¶
func WriteMapper(bean reflect.Value, xml []byte, sessionFactory *SessionFactory, decoder SqlResultDecoder, sqlBuilder SqlBuilder, enableLog bool)
写入方法内容,例如
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 `mapperParams:"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 `mapperParams:"name,startTime,endTime"`
}
func的基本类型的参数(例如string,int,time.Time,int64,float....)个数无限制(并且需要用Tag指定参数名逗号隔开,例如`mapperParams:"id,phone"`),返回值必须有error func的结构体参数无需指定mapperParams的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 ActionType ¶
type ActionType int
const ( ActionType_Exec ActionType = iota //执行 ActionType_Query //查询 )
type DataSourceRouter ¶
type DataSourceRouter interface {
//路由规则
//参数:mapperName mapper文件包名+名称例如(example.ExampleActivityMapper)
//返回(session,error)路由选择后的session,error异常
Router(mapperName string) (Session, error)
//设置sql.DB,该方法会被GoMybatis框架内调用
SetDB(url string, db *sql.DB)
}
数据源路由接口
type DefaultTransationManager ¶
type DefaultTransationManager struct {
TransactionManager
SessionFactory *SessionFactory
TransactionFactory *TransactionFactory
}
func (DefaultTransationManager) Commit ¶
func (it DefaultTransationManager) Commit(mapperName string, transactionId string) error
func (DefaultTransationManager) DoAction ¶
func (it DefaultTransationManager) DoAction(dto TransactionReqDTO, transcationStatus *TransactionStatus) TransactionRspDTO
执行数据库操作
func (DefaultTransationManager) DoTransaction ¶
func (it DefaultTransationManager) DoTransaction(dto TransactionReqDTO) TransactionRspDTO
执行事务
func (DefaultTransationManager) GetTransaction ¶
func (it DefaultTransationManager) GetTransaction(mapperName string, def *TransactionDefinition, transactionId string, OwnerId string) (*TransactionStatus, error)
func (DefaultTransationManager) New ¶
func (it DefaultTransationManager) New(SessionFactory *SessionFactory, TransactionFactory *TransactionFactory) DefaultTransationManager
type ElementItem ¶
type ElementItem struct {
ElementType string
Propertys map[string]string
DataString string
ElementItems []ElementItem
}
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" //child elements Element_bind ElementType = "bind" Element_String ElementType = "string" Element_If ElementType = `if` Element_Trim ElementType = "trim" Element_Foreach ElementType = "foreach" Element_Set ElementType = "set" Element_choose ElementType = "choose" Element_when ElementType = "when" Element_otherwise ElementType = "otherwise" Element_where ElementType = "where" Element_Include ElementType = "include" )
type ExpressionEngine ¶
type ExpressionEngine interface {
//引擎名称
Name() string
//编译一个表达式
//参数:lexerArg 表达式内容
//返回:interface{} 编译结果,error 错误
Lexer(lexerArg string) (interface{}, error)
//执行一个表达式
//参数:lexerResult=编译结果,arg=参数
//返回:执行结果,错误
Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
//取Lexer缓存,可不提供。需要提供单例
LexerCache() ExpressionEngineLexerCache
}
q:为什么要拆分表达式编译和执行步骤?优化性能,如果需要可以缓存表达式编译结果,执行表达式时不需要重复编译 表达式引擎接口
type ExpressionEngineExpr ¶
type ExpressionEngineExpr struct {
// contains filtered or unexported fields
}
func (*ExpressionEngineExpr) Eval ¶
func (it *ExpressionEngineExpr) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误
func (*ExpressionEngineExpr) Lexer ¶
func (it *ExpressionEngineExpr) Lexer(expression string) (interface{}, error)
编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误
func (*ExpressionEngineExpr) LexerCache ¶
func (it *ExpressionEngineExpr) LexerCache() ExpressionEngineLexerCache
Lexer缓存,可不提供。
type ExpressionEngineGovaluate ¶
type ExpressionEngineGovaluate struct {
}
func (*ExpressionEngineGovaluate) Eval ¶
func (it *ExpressionEngineGovaluate) Eval(compileResult interface{}, arg interface{}, operation int) (interface{}, error)
执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误
func (*ExpressionEngineGovaluate) Lexer ¶
func (it *ExpressionEngineGovaluate) Lexer(expression string) (interface{}, error)
编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误
func (*ExpressionEngineGovaluate) LexerCache ¶
func (it *ExpressionEngineGovaluate) LexerCache() ExpressionEngineLexerCache
Lexer缓存,可不提供。
func (*ExpressionEngineGovaluate) Name ¶
func (it *ExpressionEngineGovaluate) Name() string
type ExpressionEngineJee ¶
type ExpressionEngineJee struct {
}
ExpressionEngineJee 是一个基于json表达式操作的第三方库实现
func (*ExpressionEngineJee) Eval ¶
func (it *ExpressionEngineJee) Eval(compileResult interface{}, arg interface{}, operation int) (interface{}, error)
执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误
func (*ExpressionEngineJee) Lexer ¶
func (it *ExpressionEngineJee) Lexer(lexerArg string) (interface{}, error)
编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误
func (*ExpressionEngineJee) LexerAndOrSupport ¶
func (it *ExpressionEngineJee) LexerAndOrSupport(lexerArg string) string
添加and 和 or 语法支持
func (*ExpressionEngineJee) LexerCache ¶
func (it *ExpressionEngineJee) LexerCache() ExpressionEngineLexerCache
Lexer缓存,可不提供。
func (*ExpressionEngineJee) LexerEval ¶
func (it *ExpressionEngineJee) LexerEval(lexerArg string, arg interface{}, operation int) (interface{}, error)
编译后立即执行
func (*ExpressionEngineJee) Name ¶
func (it *ExpressionEngineJee) Name() string
type ExpressionEngineLexerCache ¶
type ExpressionEngineLexerCache interface {
Set(expression string, lexer interface{}) error
Get(expression string) (interface{}, error)
}
Lexer 结果缓存
type ExpressionEngineLexerMapCache ¶
type ExpressionEngineLexerMapCache struct {
// contains filtered or unexported fields
}
func (*ExpressionEngineLexerMapCache) Get ¶
func (it *ExpressionEngineLexerMapCache) Get(expression string) (interface{}, error)
func (ExpressionEngineLexerMapCache) New ¶
func (it ExpressionEngineLexerMapCache) New() ExpressionEngineLexerMapCache
func (*ExpressionEngineLexerMapCache) Set ¶
func (it *ExpressionEngineLexerMapCache) Set(expression string, lexer interface{}) error
type ExpressionEngineProxy ¶
type ExpressionEngineProxy struct {
// contains filtered or unexported fields
}
func (*ExpressionEngineProxy) Eval ¶
func (it *ExpressionEngineProxy) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)
执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误
func (*ExpressionEngineProxy) Lexer ¶
func (it *ExpressionEngineProxy) Lexer(expression string) (interface{}, error)
编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误
func (*ExpressionEngineProxy) LexerCache ¶
func (it *ExpressionEngineProxy) LexerCache() ExpressionEngineLexerCache
func (*ExpressionEngineProxy) LexerCacheable ¶
func (it *ExpressionEngineProxy) LexerCacheable() bool
func (ExpressionEngineProxy) New ¶
func (ExpressionEngineProxy) New(engine ExpressionEngine, useLexerCache bool) ExpressionEngineProxy
engine :表达式引擎,useLexerCache:是否缓存Lexer表达式编译结果
func (*ExpressionEngineProxy) SetUseLexerCache ¶
func (it *ExpressionEngineProxy) SetUseLexerCache(isUseCache bool) error
type ExpressionOperation ¶
type ExpressionOperation = int
const ( JeeOperation_Marshal_Map ExpressionOperation = iota //序列化和反序列化为json JeeOperation_Unmarshal_Byte )
type GoMybatisDataSourceRouter ¶
type GoMybatisDataSourceRouter struct {
// contains filtered or unexported fields
}
func (GoMybatisDataSourceRouter) New ¶
func (it GoMybatisDataSourceRouter) New(routerFunc func(mapperName string) *string) GoMybatisDataSourceRouter
初始化路由,routerFunc为nil或者routerFunc返回nil,则框架自行选择第一个数据库作为数据源
type GoMybatisEngine ¶
type GoMybatisEngine struct {
// contains filtered or unexported fields
}
func (*GoMybatisEngine) DataSourceRouter ¶
func (it *GoMybatisEngine) DataSourceRouter() DataSourceRouter
func (*GoMybatisEngine) ExpressionEngine ¶
func (it *GoMybatisEngine) ExpressionEngine() ExpressionEngine
表达式执行引擎
func (*GoMybatisEngine) Name ¶
func (it *GoMybatisEngine) Name() string
func (GoMybatisEngine) New ¶
func (it GoMybatisEngine) New() GoMybatisEngine
func (*GoMybatisEngine) NewSession ¶
func (it *GoMybatisEngine) NewSession(mapperName string) (Session, error)
func (*GoMybatisEngine) Open ¶
func (it *GoMybatisEngine) Open(driverName, dataSourceName string) error
打开数据库 driverName: 驱动名称例如"mysql", dataSourceName: string 数据库url
func (*GoMybatisEngine) SessionFactory ¶
func (it *GoMybatisEngine) SessionFactory() *SessionFactory
session工厂
func (*GoMybatisEngine) SetDataSourceRouter ¶
func (it *GoMybatisEngine) SetDataSourceRouter(router DataSourceRouter)
func (*GoMybatisEngine) SetExpressionEngine ¶
func (it *GoMybatisEngine) SetExpressionEngine(engine ExpressionEngine)
设置表达式执行引擎
func (*GoMybatisEngine) SetLogEnable ¶
func (it *GoMybatisEngine) SetLogEnable(enable bool)
设置日志实现类,是否启用日志
func (*GoMybatisEngine) SetSessionFactory ¶
func (it *GoMybatisEngine) SetSessionFactory(factory *SessionFactory)
设置session工厂
func (*GoMybatisEngine) SetSqlArgTypeConvert ¶
func (it *GoMybatisEngine) SetSqlArgTypeConvert(convert SqlArgTypeConvert)
设置sql类型转换器
func (*GoMybatisEngine) SetSqlBuilder ¶
func (it *GoMybatisEngine) SetSqlBuilder(builder SqlBuilder)
设置sql构建器
func (*GoMybatisEngine) SetSqlResultDecoder ¶
func (it *GoMybatisEngine) SetSqlResultDecoder(decoder SqlResultDecoder)
设置sql查询结果解析器
func (*GoMybatisEngine) SqlArgTypeConvert ¶
func (it *GoMybatisEngine) SqlArgTypeConvert() SqlArgTypeConvert
sql类型转换器
func (*GoMybatisEngine) SqlResultDecoder ¶
func (it *GoMybatisEngine) SqlResultDecoder() SqlResultDecoder
sql查询结果解析器
func (*GoMybatisEngine) WriteMapperPtr ¶
func (it *GoMybatisEngine) WriteMapperPtr(ptr interface{}, xml []byte)
type GoMybatisSqlBuilder ¶
type GoMybatisSqlBuilder struct {
// contains filtered or unexported fields
}
func (GoMybatisSqlBuilder) BuildSql ¶
func (it GoMybatisSqlBuilder) BuildSql(paramMap map[string]interface{}, mapperXml *MapperXml) (string, error)
func (GoMybatisSqlBuilder) ExpressionEngineProxy ¶
func (it GoMybatisSqlBuilder) ExpressionEngineProxy() ExpressionEngineProxy
func (GoMybatisSqlBuilder) LogSystem ¶
func (it GoMybatisSqlBuilder) LogSystem() *LogSystem
func (GoMybatisSqlBuilder) New ¶
func (it GoMybatisSqlBuilder) New(SqlArgTypeConvert SqlArgTypeConvert, expressionEngine ExpressionEngineProxy, log Log, enableLog bool) GoMybatisSqlBuilder
func (GoMybatisSqlBuilder) SqlArgTypeConvert ¶
func (it GoMybatisSqlBuilder) SqlArgTypeConvert() SqlArgTypeConvert
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 LocalSession ¶
type LocalSession struct {
SessionId string
// contains filtered or unexported fields
}
本地直连session
func (*LocalSession) Begin ¶
func (it *LocalSession) Begin() error
func (*LocalSession) Close ¶
func (it *LocalSession) Close()
func (*LocalSession) Commit ¶
func (it *LocalSession) Commit() error
func (*LocalSession) Id ¶
func (it *LocalSession) Id() string
func (*LocalSession) Query ¶
func (it *LocalSession) Query(sqlorArgs string) ([]map[string][]byte, error)
func (*LocalSession) Rollback ¶
func (it *LocalSession) Rollback() error
type LogStandard ¶
type LogStandard struct {
PrintlnFunc func(messages []byte) //日志输出方法实现
}
type LogSystem ¶
type LogSystem struct {
// contains filtered or unexported fields
}
type MapperXml ¶
type MapperXml struct {
Tag string
Id string
Propertys map[string]string
ElementItems []ElementItem
}
type PROPAGATION ¶
type PROPAGATION int
const ( PROPAGATION_REQUIRED PROPAGATION = iota PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_REQUIRES_NEW PROPAGATION_NOT_SUPPORTED PROPAGATION_NEVER PROPAGATION_NESTED )
传播行为
type RemoteSessionEngine ¶
type RemoteSessionEngine struct {
SessionEngine
Client *TransationRMClient
}
func (RemoteSessionEngine) New ¶
func (it RemoteSessionEngine) New(Client *TransationRMClient) RemoteSessionEngine
func (*RemoteSessionEngine) NewSession ¶
func (it *RemoteSessionEngine) NewSession() Session
type ResultProperty ¶
type ReturnType ¶
type SessionEngine ¶
type SessionEngine interface {
//打开数据库
Open(driverName, dataSourceName string) error
//写方法到mapper
WriteMapperPtr(ptr interface{}, xml []byte)
//引擎名称
Name() string
//创建session
NewSession(mapperName string) (Session, error)
//获取数据库map
DBMap() map[string]*sql.DB
//获取数据源路由
DataSourceRouter() DataSourceRouter
//设置数据源路由
SetDataSourceRouter(router DataSourceRouter)
//是否启用日志
LogEnable() bool
//是否启用日志
SetLogEnable(enable bool)
//获取日志实现类
Log() Log
//设置日志实现类
SetLog(log Log)
//session工厂
SessionFactory() *SessionFactory
//设置session工厂
SetSessionFactory(factory *SessionFactory)
//sql类型转换器
SqlArgTypeConvert() SqlArgTypeConvert
//设置sql类型转换器
SetSqlArgTypeConvert(convert SqlArgTypeConvert)
//表达式执行引擎
ExpressionEngine() ExpressionEngine
//设置表达式执行引擎
SetExpressionEngine(engine ExpressionEngine)
//sql构建器
SqlBuilder() SqlBuilder
//设置sql构建器
SetSqlBuilder(builder SqlBuilder)
//sql查询结果解析器
SqlResultDecoder() SqlResultDecoder
//设置sql查询结果解析器
SetSqlResultDecoder(decoder SqlResultDecoder)
}
产生session的引擎
type SessionFactory ¶
type SessionFactory struct {
Engine SessionEngine
SessionMap map[string]Session
}
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) New ¶
func (it SessionFactory) New(Engine SessionEngine) SessionFactory
func (*SessionFactory) NewSession ¶
func (it *SessionFactory) NewSession(mapperName string, sessionType SessionType, config *TransationRMClientConfig) 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() 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) Id ¶
func (it *SessionFactorySession) Id() string
func (*SessionFactorySession) Query ¶
func (it *SessionFactorySession) Query(sqlorArgs string) ([]map[string][]byte, error)
func (*SessionFactorySession) Rollback ¶
func (it *SessionFactorySession) Rollback() error
type SessionType ¶
type SessionType = int
const ( SessionType_Default SessionType = iota //默认session类型 SessionType_Local //本地session SessionType_TransationRM //远程session )
type SqlArgTypeConvert ¶
表达式类型(基本类型)转换函数
type SqlBuilder ¶
type SqlBuilder interface {
BuildSql(paramMap map[string]interface{}, mapperXml *MapperXml) (string, error)
ExpressionEngineProxy() ExpressionEngineProxy
SqlArgTypeConvert() SqlArgTypeConvert
LogSystem() *LogSystem
}
sql文本构建
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 Transaction ¶
type TransactionDefinition ¶
type TransactionDefinition struct {
PropagationBehavior PROPAGATION
IsolationLevel ISOLATION
Timeout time.Duration
IsReadOnly bool
}
func (TransactionDefinition) Default ¶
func (it TransactionDefinition) Default() TransactionDefinition
type TransactionFactory ¶
type TransactionFactory struct {
TransactionStatuss map[string]*TransactionStatus
SessionFactory *SessionFactory
}
func (*TransactionFactory) Append ¶
func (it *TransactionFactory) Append(mapperName string, transactionId string, transaction TransactionStatus)
func (*TransactionFactory) GetTransactionStatus ¶
func (it *TransactionFactory) GetTransactionStatus(mapperName string, transactionId string) (*TransactionStatus, error)
func (TransactionFactory) New ¶
func (it TransactionFactory) New(SessionFactory *SessionFactory) TransactionFactory
func (*TransactionFactory) SetTransactionStatus ¶
func (it *TransactionFactory) SetTransactionStatus(transactionId string, transaction *TransactionStatus)
type TransactionManager ¶
type TransactionReqDTO ¶
type TransactionReqDTO struct {
Status Transaction_Status
TransactionId string //事务id(不可空)
OwnerId string //所有者
Sql string //sql内容(可空)
ActionType ActionType
MapperName string //mapper名称
}
type TransactionRspDTO ¶
type TransactionStatus ¶
type TransactionStatus struct {
MapperName string
OwnerId string //所有者id
IsNewTransaction bool //是否新启动的事务
HasSavepoint bool //是否保存点
IsRollbackOnly bool //是否只允许rollback
IsCompleted bool //是否完成
HasSetDelayClose bool //是否设置了延迟关闭/回滚
Transaction *Transaction //事务对象
}
func (*TransactionStatus) Begin ¶
func (it *TransactionStatus) Begin() error
func (*TransactionStatus) Commit ¶
func (it *TransactionStatus) Commit() error
func (*TransactionStatus) DelayFlush ¶
func (it *TransactionStatus) DelayFlush(t time.Duration)
延迟关闭
func (*TransactionStatus) Flush ¶
func (it *TransactionStatus) Flush()
func (*TransactionStatus) Rollback ¶
func (it *TransactionStatus) Rollback() error
type Transaction_Status ¶
type Transaction_Status int
const ( Transaction_Status_NO Transaction_Status = iota //非事务 Transaction_Status_Prepare //准备事务 Transaction_Status_Commit //提交事务 Transaction_Status_Rollback //回滚事务 )
func (Transaction_Status) ToString ¶
func (status Transaction_Status) ToString() string
type TransationRMClient ¶
func (*TransationRMClient) Call ¶
func (it *TransationRMClient) Call(arg TransactionReqDTO, result *TransactionRspDTO) error
func (*TransationRMClient) Close ¶
func (it *TransationRMClient) Close() error
type TransationRMClientConfig ¶
type TransationRMClientConfig struct {
Addr string
RetryTime int
TransactionId string
Status Transaction_Status
}
type TransationRMServer ¶
type TransationRMServer struct {
DefaultTransationManager *DefaultTransationManager
}
func (TransationRMServer) Msg ¶
func (it TransationRMServer) Msg(arg TransactionReqDTO, result *TransactionRspDTO) (err error)
type TransationRMSession ¶
type TransationRMSession struct {
MapperName string
TransactionId string
OwnerId string
Client *TransationRMClient
Status Transaction_Status //默认0,非事务
}
func (*TransationRMSession) Begin ¶
func (it *TransationRMSession) Begin() error
func (*TransationRMSession) Close ¶
func (it *TransationRMSession) Close()
func (*TransationRMSession) Commit ¶
func (it *TransationRMSession) Commit() error
func (*TransationRMSession) Exec ¶
func (it *TransationRMSession) Exec(sqlorArgs string) (*Result, error)
func (*TransationRMSession) Id ¶
func (it *TransationRMSession) Id() string
func (TransationRMSession) New ¶
func (it TransationRMSession) New(mapperName string, TransactionId string, Client *TransationRMClient, Status Transaction_Status) *Session
func (*TransationRMSession) Query ¶
func (it *TransationRMSession) Query(sqlorArgs string) ([]map[string][]byte, error)
func (*TransationRMSession) Rollback ¶
func (it *TransationRMSession) Rollback() error
Source Files
¶
- DataSourceRouter.go
- ElementType.go
- ExpressionEngine.go
- ExpressionEngineExpr.go
- ExpressionEngineGovaluate.go
- ExpressionEngineJee.go
- ExpressionEngineLexerCache.go
- ExpressionEngineLexerCacheable.go
- ExpressionEngineLexerMapCache.go
- ExpressionEngineProxy.go
- GoMybatis.go
- GoMybatisConst.go
- GoMybatisDataSourceRouter.go
- GoMybatisEnableType.go
- GoMybatisEngine.go
- GoMybatisProxy.go
- GoMybatisReturnType.go
- GoMybatisRowsDecoder.go
- GoMybatisSqlArgTypeConvert.go
- GoMybatisSqlBuilder.go
- GoMybatisSqlResultDecoder.go
- LocalSession.go
- Log.go
- LogStandard.go
- LogSystem.go
- RegexReplaceArg.go
- ResultMap.go
- SessionFactory.go
- SessionFactorySession.go
- SessionType.go
- SqlArgTypeConvert.go
- SqlBuilder.go
- SqlEngine.go
- SqlResultDecoder.go
- TransactionDefinition.go
- TransactionFactory.go
- TransactionManager.go
- TransactionStatus.go
- TransationRMClient.go
- TransationRMServer.go
- TransationRMServerSession.go
- XmlLoader.go
- type.go
Directories
¶
| Path | Synopsis |
|---|---|
|
lib
|
|
|
github.com/antonmedv/expr
Package expr is an engine that can evaluate expressions.
|
Package expr is an engine that can evaluate expressions. |
|
github.com/beevik/etree
Package etree provides XML services through an Element Tree abstraction.
|
Package etree provides XML services through an Element Tree abstraction. |
|
github.com/nytlabs/gojee/jee
command
|
|


