Documentation
¶
Overview ¶
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Package daog,A quickly mysql access component.
Copyright 2023 The daog Authors. All rights reserved.
Index ¶
- Constants
- Variables
- func ConvertToAnySlice[T any](data []T) []any
- func DeleteById[T any](id int64, meta *TableMeta[T], tc *TransContext) (int64, error)
- func DeleteByIds[T any](ids []int64, meta *TableMeta[T], tc *TransContext) (int64, error)
- func DeleteByMatcher[T any](matcher Matcher, meta *TableMeta[T], tc *TransContext) (int64, error)
- func ExecRawSQL(tc *TransContext, sql string, args ...any) (int64, error)
- func GetById[T any](id int64, meta *TableMeta[T], tc *TransContext) (*T, error)
- func GetByIds[T any](ids []int64, meta *TableMeta[T], tc *TransContext) ([]*T, error)
- func GetDatasourceShardingKeyFromCtx(ctx context.Context) any
- func GetTableName[T any](ctx context.Context, meta *TableMeta[T]) string
- func GetTableShardingKeyFromCtx(ctx context.Context) any
- func GetTraceIdFromContext(ctx context.Context) string
- func Insert[T any](ins *T, meta *TableMeta[T], tc *TransContext) (int64, error)
- func QueryListMatcher[T any](m Matcher, meta *TableMeta[T], tc *TransContext) ([]*T, error)
- func QueryListMatcherPageHandle[T any](m Matcher, meta *TableMeta[T], pageSize int, handler PageHandler[T], ...) error
- func QueryOneMatcher[T any](m Matcher, meta *TableMeta[T], tc *TransContext) (*T, error)
- func QueryRawSQL[T any](tc *TransContext, extract ExtractScanFieldPoints[T], sql string, args ...any) ([]*T, error)
- func Update[T any](ins *T, meta *TableMeta[T], tc *TransContext) (int64, error)
- func UpdateById[T any](modifier Modifier, id int64, meta *TableMeta[T], tc *TransContext) (int64, error)
- func UpdateByIds[T any](modifier Modifier, ids []int64, meta *TableMeta[T], tc *TransContext) (int64, error)
- func UpdateByModifier[T any](modifier Modifier, matcher Matcher, meta *TableMeta[T], tc *TransContext) (int64, error)
- func UpdateList[T any](insList []*T, meta *TableMeta[T], tc *TransContext) (int64, error)
- type Datasource
- type DatasourceShardingPolicy
- type DbConf
- type ExtractScanFieldPoints
- type LogErrorFunc
- type LogExecSQLAfterFunc
- type LogExecSQLBeforeFunc
- type LogInfoFunc
- type Matcher
- type ModInt64ShardingDatasourcePolicy
- type Modifier
- type PageHandler
- type QuickDao
- type SQLCond
- type TableMeta
- type TransContext
Constants ¶
const ( LikeStyleAll = 0 LikeStyleLeft = 1 LikeStyleRight = 2 )
define "and","or" operand define like style, %xx%, %s,s%
const ( TraceId = "trace-id" CtxValues = "values" ShardingKey = "shardingKey" DatasourceShardingKey = "datasourceSharingKey" )
const TableIdColumnName = "id"
Variables ¶
var ( LogError LogErrorFunc LogInfo LogInfoFunc LogExecSQLBefore LogExecSQLBeforeFunc LogExecSQLAfter LogExecSQLAfterFunc )
Functions ¶
func ConvertToAnySlice ¶
func DeleteById ¶
func DeleteByIds ¶
func DeleteByMatcher ¶
func ExecRawSQL ¶
func ExecRawSQL(tc *TransContext, sql string, args ...any) (int64, error)
func GetByIds ¶
func GetByIds[T any](ids []int64, meta *TableMeta[T], tc *TransContext) ([]*T, error)
func GetTraceIdFromContext ¶
func QueryListMatcher ¶
func QueryListMatcher[T any](m Matcher, meta *TableMeta[T], tc *TransContext) ([]*T, error)
func QueryListMatcherPageHandle ¶ added in v0.0.3
func QueryListMatcherPageHandle[T any](m Matcher, meta *TableMeta[T], pageSize int, handler PageHandler[T], tc *TransContext) error
QueryListMatcherPageHandle 读取数据并且分页处理数据,当读取的数据量巨大时非常有用,如果数据都读入内存,容易打爆内存,分批量处理就非常有用 pageSize 每批处理数据的最大容量,必须大于0,但不要设置太大,当设置为1时,退化成每条处理 handler 用于处理每批数据的函数
func QueryOneMatcher ¶
func QueryOneMatcher[T any](m Matcher, meta *TableMeta[T], tc *TransContext) (*T, error)
func QueryRawSQL ¶ added in v0.0.2
func QueryRawSQL[T any](tc *TransContext, extract ExtractScanFieldPoints[T], sql string, args ...any) ([]*T, error)
QueryRawSQL 执行原生select sql语句,返回行数据数组,行数据使用T struct描述 mapper, 它T的各个field指针提取出来并按照顺序生成一个slice,用于Row.Scan方法,把sql字段映射到T对象的各个Field上
func UpdateById ¶
func UpdateByIds ¶
func UpdateByModifier ¶
func UpdateList ¶
func UpdateList[T any](insList []*T, meta *TableMeta[T], tc *TransContext) (int64, error)
Types ¶
type Datasource ¶
type Datasource interface {
Shutdown()
IsLogSQL() bool
// contains filtered or unexported methods
}
func NewDatasource ¶
func NewDatasource(conf *DbConf) (Datasource, error)
func NewShardingDatasource ¶
func NewShardingDatasource(confs []*DbConf, policy DatasourceShardingPolicy) (Datasource, error)
type ExtractScanFieldPoints ¶ added in v0.0.3
type LogErrorFunc ¶
type LogExecSQLAfterFunc ¶
type LogExecSQLBeforeFunc ¶ added in v0.0.3
type LogInfoFunc ¶
type Matcher ¶
type Matcher interface {
SQLCond
// Add 这个方法是个冗余方法,其实可以直接使用AddCond, 因为Matcher继承自SQLCond,冗余这个方法仅仅是让使用者更好的理解
Add(matcher Matcher) Matcher
AddCond(cond SQLCond) Matcher
// Eq equals 语义
Eq(column string, value any) Matcher
// Ne not equals 语义
Ne(column string, value any) Matcher
// Lt less than语义
Lt(column string, value any) Matcher
// Lte less than or equals
Lte(column string, value any) Matcher
// Gt greater than
Gt(column string, value any) Matcher
// Gte greater than or equals
Gte(column string, value any) Matcher
// In xx in(?,?,...)
In(column string, values []any) Matcher
// NotIn xx not in(?,?,...)
NotIn(column string, values []any) Matcher
Like(column string, value string, likeStyle int) Matcher
Null(column string, not bool) Matcher
Between(column string, start any, end any) Matcher
}
func NewAndMatcher ¶
func NewAndMatcher() Matcher
func NewMatcher ¶
func NewMatcher() Matcher
func NewOrMatcher ¶
func NewOrMatcher() Matcher
type ModInt64ShardingDatasourcePolicy ¶
type ModInt64ShardingDatasourcePolicy int64
type PageHandler ¶ added in v0.0.3
type QuickDao ¶ added in v0.0.3
type QuickDao[T any] interface { GetById(id int64, tc *TransContext) (*T, error) GetByIds(ids []int64, tc *TransContext) ([]*T, error) QueryListMatcher(m Matcher, tc *TransContext) ([]*T, error) QueryListMatcherPageHandle(m Matcher, pageSize int, handler PageHandler[T], tc *TransContext) error QueryOneMatcher(m Matcher, tc *TransContext) (*T, error) QueryRawSQL(tc *TransContext, extract ExtractScanFieldPoints[T], sql string, args ...any) ([]*T, error) Insert(ins *T, tc *TransContext) (int64, error) Update(ins *T, tc *TransContext) (int64, error) UpdateList(insList []*T, tc *TransContext) (int64, error) UpdateById(modifier Modifier, id int64, tc *TransContext) (int64, error) UpdateByIds(modifier Modifier, ids []int64, tc *TransContext) (int64, error) UpdateByModifier(modifier Modifier, matcher Matcher, tc *TransContext) (int64, error) ExecRawSQL(tc *TransContext, sql string, args ...any) (int64, error) DeleteById(id int64, tc *TransContext) (int64, error) DeleteByIds(ids []int64, tc *TransContext) (int64, error) DeleteByMatcher(matcher Matcher, tc *TransContext) (int64, error) }
func NewBaseQuickDao ¶ added in v0.0.3
type TableMeta ¶
type TransContext ¶
type TransContext struct {
LogSQL bool
// contains filtered or unexported fields
}
func NewTransContext ¶
func NewTransContext(datasource Datasource, txRequest txrequest.RequestStyle, traceId string) (*TransContext, error)
func NewTransContextWithSharding ¶
func NewTransContextWithSharding(datasource Datasource, txRequest txrequest.RequestStyle, traceId string, shardingKey any, datasourceShardingKey any) (*TransContext, error)
func (*TransContext) Complete ¶
func (tc *TransContext) Complete(e error)