database

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

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 数据库连接配置

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig 返回默认配置

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) GetOffset

func (opts *ListOptions) GetOffset() int

GetOffset 计算偏移量

func (*ListOptions) GetOrderClause

func (opts *ListOptions) GetOrderClause() string

GetOrderClause 获取排序子句

func (*ListOptions) Validate

func (opts *ListOptions) Validate() error

Validate 验证分页选项

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 数据库管理器

func NewManager

func NewManager(dsn string, config *Config) (*Manager, error)

NewManager 创建新的数据库管理器

func (*Manager) Close

func (m *Manager) Close() error

Close 关闭数据库连接

func (*Manager) GetDB

func (m *Manager) GetDB() *gorm.DB

GetDB 返回GORM实例

func (*Manager) GetSQLDB

func (m *Manager) GetSQLDB() *sql.DB

GetSQLDB 返回底层sql.DB实例

func (*Manager) GetStats

func (m *Manager) GetStats() *PoolStats

GetStats 返回连接池统计信息

func (*Manager) Ping

func (m *Manager) Ping(ctx context.Context) error

Ping 检查数据库连接

func (*Manager) WithContext

func (m *Manager) WithContext(ctx context.Context) *gorm.DB

WithContext 返回带Context的GORM实例

func (*Manager) WithRetry

func (m *Manager) WithRetry(ctx context.Context, operation func(*gorm.DB) error) error

WithRetry 执行带重试的数据库操作

type Metrics

type Metrics struct {
	// contains filtered or unexported fields
}

Metrics 数据库指标

func NewMetrics

func NewMetrics() *Metrics

NewMetrics 创建新的指标收集器

func (*Metrics) FailureCount

func (m *Metrics) FailureCount() int64

FailureCount 返回失败操作次数

func (*Metrics) HealthCheckFailureCount

func (m *Metrics) HealthCheckFailureCount() int64

HealthCheckFailureCount 返回健康检查失败次数

func (*Metrics) HealthCheckSuccessCount

func (m *Metrics) HealthCheckSuccessCount() int64

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

func (m *Metrics) LastHealthCheckFailure() time.Time

LastHealthCheckFailure 返回最后一次健康检查失败时间

func (*Metrics) LastHealthCheckSuccess

func (m *Metrics) LastHealthCheckSuccess() time.Time

LastHealthCheckSuccess 返回最后一次健康检查成功时间

func (*Metrics) Reset

func (m *Metrics) Reset()

Reset 重置所有指标

func (*Metrics) RetryCount

func (m *Metrics) RetryCount() int64

RetryCount 返回重试次数

func (*Metrics) SuccessCount

func (m *Metrics) SuccessCount() int64

SuccessCount 返回成功操作次数

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 NewQueryBuilder

func NewQueryBuilder(db *gorm.DB) *QueryBuilder

NewQueryBuilder 创建新的查询构建器

func (*QueryBuilder) List

func (qb *QueryBuilder) List(ctx any, model any, opts *ListOptions) (*PaginatedResult[any], error)

List 执行分页查询

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL