Documentation
¶
Overview ¶
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-11 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-13 11:05:04 * @FilePath: \go-sqlbuilder\executor\executor.go * @Description: * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
Index ¶
Constants ¶
View Source
const ( HookTypeBeforeExecution = "before_execution" HookTypeAfterExecution = "after_execution" HookTypeOnError = "on_error" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ExecutionContext ¶
type Executor ¶
type Executor interface {
Query(ctx context.Context, sql string, args ...interface{}) (*sql.Rows, error)
Exec(ctx context.Context, sql string, args ...interface{}) (sql.Result, error)
WithDB(db *gorm.DB) Executor
WithLogger(logger logger.Logger) Executor
RegisterHook(hookType string, hook Hook) Executor
Execute(ctx context.Context, condition *core.QueryCondition) (*QueryResult, error)
}
func NewExecutor ¶
type GormResult ¶
type GormResult struct {
// contains filtered or unexported fields
}
func (*GormResult) LastInsertId ¶
func (gr *GormResult) LastInsertId() (int64, error)
func (*GormResult) RowsAffected ¶
func (gr *GormResult) RowsAffected() (int64, error)
type Hook ¶
type Hook func(ctx *ExecutionContext) error
type HookRegistry ¶
type HookRegistry struct {
// contains filtered or unexported fields
}
func NewHookRegistry ¶
func NewHookRegistry() *HookRegistry
func (*HookRegistry) Execute ¶
func (hr *HookRegistry) Execute(hookType string, ctx *ExecutionContext) error
func (*HookRegistry) Register ¶
func (hr *HookRegistry) Register(hookType string, hook Hook)
type QueryMetrics ¶
type QueryMetrics struct {
TotalQueries int64
TotalDuration time.Duration
FastestQuery time.Duration
SlowestQuery time.Duration
AverageDuration time.Duration
}
func NewQueryMetrics ¶
func NewQueryMetrics() *QueryMetrics
func (*QueryMetrics) RecordQuery ¶
func (qm *QueryMetrics) RecordQuery(duration time.Duration)
func (*QueryMetrics) Reset ¶
func (qm *QueryMetrics) Reset()
type QueryResult ¶
Click to show internal directories.
Click to hide internal directories.