Documentation
¶
Index ¶
- type Config
- type ListOptions
- type Manager
- func (m *Manager) Close() error
- func (m *Manager) GetDB() *gorm.DB
- func (m *Manager) GetSQLDB() *sql.DB
- func (m *Manager) GetStats() *PoolStats
- func (m *Manager) Ping(ctx context.Context) error
- func (m *Manager) WithContext(ctx context.Context) *gorm.DB
- func (m *Manager) WithRetry(ctx context.Context, operation func(*gorm.DB) error) error
- type Metrics
- func (m *Metrics) FailureCount() int64
- func (m *Metrics) HealthCheckFailureCount() int64
- func (m *Metrics) HealthCheckSuccessCount() int64
- func (m *Metrics) IncrementFailureCount()
- func (m *Metrics) IncrementHealthCheckFailure()
- func (m *Metrics) IncrementHealthCheckSuccess()
- func (m *Metrics) IncrementRetryCount()
- func (m *Metrics) IncrementSuccessCount()
- func (m *Metrics) LastHealthCheckFailure() time.Time
- func (m *Metrics) LastHealthCheckSuccess() time.Time
- func (m *Metrics) Reset()
- func (m *Metrics) RetryCount() int64
- func (m *Metrics) SuccessCount() int64
- type PaginatedResult
- type Pagination
- type PoolStats
- type QueryBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// 连接池配置
MaxOpenConns int `yaml:"max_open_conns" default:"25"`
MaxIdleConns int `yaml:"max_idle_conns" default:"5"`
ConnMaxLifetime time.Duration `yaml:"conn_max_lifetime" default:"5m"`
ConnMaxIdleTime time.Duration `yaml:"conn_max_idle_time" default:"5m"`
// 健康检查配置
HealthCheckInterval time.Duration `yaml:"health_check_interval" default:"30s"`
HealthCheckTimeout time.Duration `yaml:"health_check_timeout" default:"3s"`
// 监控配置
MetricsEnabled bool `yaml:"metrics_enabled" default:"true"`
// 日志配置
LogLevel logger.LogLevel `yaml:"log_level" default:"error"`
// 重试配置
RetryAttempts int `yaml:"retry_attempts" default:"3"`
RetryDelay time.Duration `yaml:"retry_delay" default:"100ms"`
}
Config 数据库连接配置
type ListOptions ¶
type ListOptions struct {
Page int `form:"page" binding:"min=1" default:"1"`
PageSize int `form:"page_size" binding:"min=1,max=100" default:"20"`
Sort string `form:"sort" default:"id"`
Order string `form:"order" default:"asc"`
Search string `form:"search"`
}
ListOptions 分页查询选项
func (*ListOptions) GetOrderClause ¶
func (opts *ListOptions) GetOrderClause() string
GetOrderClause 获取排序子句
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 数据库管理器
func NewManager ¶
NewManager 创建新的数据库管理器
func (*Manager) WithContext ¶
WithContext 返回带Context的GORM实例
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
Metrics 数据库指标
func (*Metrics) HealthCheckFailureCount ¶
HealthCheckFailureCount 返回健康检查失败次数
func (*Metrics) HealthCheckSuccessCount ¶
HealthCheckSuccessCount 返回健康检查成功次数
func (*Metrics) IncrementFailureCount ¶
func (m *Metrics) IncrementFailureCount()
IncrementFailureCount 增加失败操作次数
func (*Metrics) IncrementHealthCheckFailure ¶
func (m *Metrics) IncrementHealthCheckFailure()
IncrementHealthCheckFailure 增加健康检查失败次数
func (*Metrics) IncrementHealthCheckSuccess ¶
func (m *Metrics) IncrementHealthCheckSuccess()
IncrementHealthCheckSuccess 增加健康检查成功次数
func (*Metrics) IncrementRetryCount ¶
func (m *Metrics) IncrementRetryCount()
IncrementRetryCount 增加重试次数
func (*Metrics) IncrementSuccessCount ¶
func (m *Metrics) IncrementSuccessCount()
IncrementSuccessCount 增加成功操作次数
func (*Metrics) LastHealthCheckFailure ¶
LastHealthCheckFailure 返回最后一次健康检查失败时间
func (*Metrics) LastHealthCheckSuccess ¶
LastHealthCheckSuccess 返回最后一次健康检查成功时间
type PaginatedResult ¶
type PaginatedResult[T any] struct { Items []T `json:"items"` Pagination Pagination `json:"pagination"` }
PaginatedResult 分页结果
func ListGeneric ¶
func ListGeneric[T any](db *gorm.DB, ctx any, opts *ListOptions, searchCondition func(*gorm.DB) *gorm.DB) (*PaginatedResult[T], error)
ListGeneric 通用分页查询
func NewPaginatedResult ¶
func NewPaginatedResult[T any](items []T, opts *ListOptions, total int64) *PaginatedResult[T]
NewPaginatedResult 创建新的分页结果
type Pagination ¶
type Pagination struct {
Page int `json:"page"`
PageSize int `json:"page_size"`
Total int64 `json:"total"`
TotalPages int `json:"total_pages"`
HasNext bool `json:"has_next"`
HasPrev bool `json:"has_prev"`
}
Pagination 分页信息
type PoolStats ¶
type PoolStats struct {
MaxOpenConnections int `json:"max_open_connections"`
OpenConnections int `json:"open_connections"`
InUse int `json:"in_use"`
Idle int `json:"idle"`
WaitCount int64 `json:"wait_count"`
WaitDuration time.Duration `json:"wait_duration"`
MaxIdleClosed int64 `json:"max_idle_closed"`
MaxIdleTimeClosed int64 `json:"max_idle_time_closed"`
MaxLifetimeClosed int64 `json:"max_lifetime_closed"`
// 健康检查统计
LastHealthCheckSuccess time.Time `json:"last_health_check_success"`
LastHealthCheckFailure time.Time `json:"last_health_check_failure"`
HealthCheckSuccessCount int64 `json:"health_check_success_count"`
HealthCheckFailureCount int64 `json:"health_check_failure_count"`
// 重试和操作统计
RetryCount int64 `json:"retry_count"`
SuccessCount int64 `json:"success_count"`
FailureCount int64 `json:"failure_count"`
}
PoolStats 连接池统计信息
type QueryBuilder ¶
type QueryBuilder struct {
// contains filtered or unexported fields
}
QueryBuilder 查询构建器
func (*QueryBuilder) List ¶
func (qb *QueryBuilder) List(ctx any, model any, opts *ListOptions) (*PaginatedResult[any], error)
List 执行分页查询
Click to show internal directories.
Click to hide internal directories.