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 Count[T any](tc *TransContext, m Matcher, meta *TableMeta[T]) (int64, error)
- func DeleteById[T any](tc *TransContext, id int64, meta *TableMeta[T]) (int64, error)
- func DeleteByIds[T any](tc *TransContext, ids []int64, meta *TableMeta[T]) (int64, error)
- func DeleteByMatcher[T any](tc *TransContext, matcher Matcher, meta *TableMeta[T]) (int64, error)
- func ExecRawSQL(tc *TransContext, sql string, args ...any) (int64, error)
- func GetAll[T any](tc *TransContext, meta *TableMeta[T], viewColumns ...string) ([]*T, error)
- func GetById[T any](tc *TransContext, id int64, meta *TableMeta[T], viewColumns ...string) (*T, error)
- func GetByIds[T any](tc *TransContext, ids []int64, meta *TableMeta[T], viewColumns ...string) ([]*T, error)
- func GetDatasourceShardingKeyFromCtx(ctx context.Context) any
- func GetGoRoutineIdFromContext(ctx context.Context) uint64
- 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](tc *TransContext, ins *T, meta *TableMeta[T]) (int64, error)
- func QueryListMatcher[T any](tc *TransContext, m Matcher, meta *TableMeta[T], orders ...*Order) ([]*T, error)
- func QueryListMatcherByBatchHandle[T any](tc *TransContext, m Matcher, meta *TableMeta[T], totalLimit int, batchSize int, ...) error
- func QueryListMatcherWithViewColumnsByBatchHandle[T any](tc *TransContext, m Matcher, meta *TableMeta[T], viewColumns []string, ...) error
- func QueryOneMatcher[T any](tc *TransContext, m Matcher, meta *TableMeta[T], viewColumns ...string) (*T, error)
- func QueryPageListMatcher[T any](tc *TransContext, m Matcher, meta *TableMeta[T], pager *Pager, ...) ([]*T, error)
- func QueryPageListMatcherWithViewColumns[T any](tc *TransContext, m Matcher, meta *TableMeta[T], viewColumns []string, ...) ([]*T, error)
- func QueryRawSQL[T any](tc *TransContext, extract ExtractScanFieldPoints[T], sql string, args ...any) ([]*T, error)
- func QueryRawSQLByBatchHandle[T any](tc *TransContext, batchSize int, handler BatchHandler[T], ...) error
- func Update[T any](tc *TransContext, ins *T, meta *TableMeta[T]) (int64, error)
- func UpdateById[T any](tc *TransContext, modifier Modifier, id int64, meta *TableMeta[T]) (int64, error)
- func UpdateByIds[T any](tc *TransContext, modifier Modifier, ids []int64, meta *TableMeta[T]) (int64, error)
- func UpdateByModifier[T any](tc *TransContext, modifier Modifier, matcher Matcher, meta *TableMeta[T]) (int64, error)
- func UpdateList[T any](tc *TransContext, insList []*T, meta *TableMeta[T]) (int64, error)
- func WrapTrans(tc *TransContext, workFn func(tc *TransContext) error) error
- func WrapTransWithResult[T any](tc *TransContext, workFn func(tc *TransContext) (T, error)) (T, error)
- type BatchHandler
- type Datasource
- type DatasourceShardingPolicy
- type DbConf
- type ExtractScanFieldPoints
- type LogErrorFunc
- type LogExecSQLAfterFunc
- type LogExecSQLBeforeFunc
- type LogInfoFunc
- type Matcher
- type ModInt64ShardingDatasourcePolicy
- type Modifier
- type Order
- type OrdersBuilder
- type Pager
- 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" GoId = "goroutine-id" CtxValues = "values" ShardingKey = "shardingKey" DatasourceShardingKey = "datasourceSharingKey" )
const TableIdColumnName = "id"
Variables ¶
var ( LogError LogErrorFunc LogInfo LogInfoFunc LogExecSQLBefore LogExecSQLBeforeFunc LogExecSQLAfter LogExecSQLAfterFunc SimpleLogError func(err error) )
Functions ¶
func ConvertToAnySlice ¶
func DeleteById ¶
func DeleteByIds ¶
func DeleteByMatcher ¶
func ExecRawSQL ¶
func ExecRawSQL(tc *TransContext, sql string, args ...any) (int64, error)
func GetAll ¶ added in v0.0.8
func GetAll[T any](tc *TransContext, meta *TableMeta[T], viewColumns ...string) ([]*T, error)
func GetGoRoutineIdFromContext ¶ added in v0.0.4
func GetTraceIdFromContext ¶
func QueryListMatcher ¶
func QueryListMatcherByBatchHandle ¶ added in v0.0.4
func QueryListMatcherByBatchHandle[T any](tc *TransContext, m Matcher, meta *TableMeta[T], totalLimit int, batchSize int, handler BatchHandler[T], orders ...*Order) error
QueryListMatcherByBatchHandle 读取数据并且分批处理数据,当读取的数据量巨大时非常有用,如果数据都读入内存,容易打爆内存,分批量处理就非常有用 batchSize 每批处理数据的最大容量,必须大于0,但不要设置太大,当设置为1时,退化成每条处理 handler 用于处理每批数据的函数 查询数据最大上限数, 0 表示无上限
func QueryListMatcherWithViewColumnsByBatchHandle ¶ added in v0.0.4
func QueryListMatcherWithViewColumnsByBatchHandle[T any](tc *TransContext, m Matcher, meta *TableMeta[T], viewColumns []string, totalLimit int, batchSize int, handler BatchHandler[T], orders ...*Order) error
func QueryOneMatcher ¶
func QueryPageListMatcher ¶ added in v0.0.4
func QueryPageListMatcherWithViewColumns ¶ added in v0.0.4
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 QueryRawSQLByBatchHandle ¶ added in v0.0.4
func QueryRawSQLByBatchHandle[T any](tc *TransContext, batchSize int, handler BatchHandler[T], extract ExtractScanFieldPoints[T], sql string, args ...any) error
func UpdateById ¶
func UpdateByIds ¶
func UpdateByModifier ¶
func UpdateList ¶
func UpdateList[T any](tc *TransContext, insList []*T, meta *TableMeta[T]) (int64, error)
func WrapTrans ¶ added in v0.0.9
func WrapTrans(tc *TransContext, workFn func(tc *TransContext) error) error
func WrapTransWithResult ¶ added in v0.0.9
func WrapTransWithResult[T any](tc *TransContext, workFn func(tc *TransContext) (T, error)) (T, error)
Types ¶
type BatchHandler ¶ added in v0.0.4
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 Modifier ¶
type Modifier interface {
Add(column string, value any) Modifier
// contains filtered or unexported methods
}
func NewModifier ¶ added in v0.0.6
func NewModifier() Modifier
type Order ¶ added in v0.0.4
func NewDescOrder ¶ added in v0.0.4
type OrdersBuilder ¶ added in v0.0.8
type OrdersBuilder struct {
// contains filtered or unexported fields
}
func NewOrdersBuilder ¶ added in v0.0.8
func NewOrdersBuilder() *OrdersBuilder
func (*OrdersBuilder) Build ¶ added in v0.0.8
func (orders *OrdersBuilder) Build() []*Order
func (*OrdersBuilder) NewDescOrder ¶ added in v0.0.8
func (orders *OrdersBuilder) NewDescOrder(columnName string) *OrdersBuilder
func (*OrdersBuilder) NewOrder ¶ added in v0.0.8
func (orders *OrdersBuilder) NewOrder(columnName string) *OrdersBuilder
type QuickDao ¶ added in v0.0.3
type QuickDao[T any] interface { GetAll(tc *TransContext, viewColumns ...string) ([]*T, error) GetById(tc *TransContext, id int64, viewColumns ...string) (*T, error) GetByIds(tc *TransContext, ids []int64, viewColumns ...string) ([]*T, error) QueryListMatcher(tc *TransContext, m Matcher, orders ...*Order) ([]*T, error) QueryPageListMatcher(tc *TransContext, m Matcher, pager *Pager, orders ...*Order) ([]*T, error) QueryPageListMatcherWithViewColumns(tc *TransContext, m Matcher, viewColumns []string, pager *Pager, orders ...*Order) ([]*T, error) QueryListMatcherByBatchHandle(tc *TransContext, m Matcher, totalLimit int, batchSize int, handler BatchHandler[T], orders ...*Order) error QueryListMatcherWithViewColumnsByBatchHandle(tc *TransContext, m Matcher, viewColumns []string, totalLimit int, batchSize int, handler BatchHandler[T], orders ...*Order) error QueryOneMatcher(tc *TransContext, m Matcher, viewColumns ...string) (*T, error) QueryRawSQL(tc *TransContext, extract ExtractScanFieldPoints[T], sql string, args ...any) ([]*T, error) QueryRawSQLByBatchHandle(tc *TransContext, batchSize int, handler BatchHandler[T], extract ExtractScanFieldPoints[T], sql string, args ...any) error Count(tc *TransContext, m Matcher) (int64, error) Insert(tc *TransContext, ins *T) (int64, error) Update(tc *TransContext, ins *T) (int64, error) UpdateList(tc *TransContext, insList []*T) (int64, error) UpdateById(tc *TransContext, modifier Modifier, id int64) (int64, error) UpdateByIds(tc *TransContext, modifier Modifier, ids []int64) (int64, error) UpdateByModifier(tc *TransContext, modifier Modifier, matcher Matcher) (int64, error) ExecRawSQL(tc *TransContext, sql string, args ...any) (int64, error) DeleteById(tc *TransContext, id int64) (int64, error) DeleteByIds(tc *TransContext, ids []int64) (int64, error) DeleteByMatcher(tc *TransContext, matcher Matcher) (int64, error) }
func NewBaseQuickDao ¶ added in v0.0.3
type TableMeta ¶
type TableMeta[T any] struct { LookupFieldFunc func(columnName string, ins *T, point bool) any ShardingFunc func(tableName string, shardingKey any) string Table string Columns []string AutoColumn string }
func (*TableMeta[T]) ExtractFieldValues ¶
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)