db

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendWhereFromStruct

func AppendWhereFromStruct(db *gorm.DB, s any)

AppendWhereFromStruct 根据结构体中的字段名,生成 where 条件 NameLike = name like AgeGt = where age > AgeLt = where age <

func GetModelsByIDs

func GetModelsByIDs[T any](modelIDs []string) []T

func InitDB

func InitDB(opt *Options, log log.Logger, plugins ...gorm.Plugin) *gorm.DB

func NewPgSqlGetter

func NewPgSqlGetter(opt *Options) *pgsqlConnector

func NewSqliteGetter

func NewSqliteGetter(opt *Options) *sqliteGetter

func Paginate

func Paginate(page, pageSize int) func(db *gorm.DB) *gorm.DB

Types

type BaseModel

type BaseModel struct {
	ID          uint            `gorm:"primarykey" json:"id,string"`
	CreatedAt   *time.Time      `json:"createdAt,omitempty"`
	UpdatedAt   *time.Time      `json:"updatedAt,omitempty"`
	DeletedAt   *gorm.DeletedAt `gorm:"index" json:"deletedAt,omitempty"`           // 删除时间
	CreatorID   string          `gorm:"comment:创建人" json:"creatorID,omitempty"`     // 创建人
	CreatorName string          `gorm:"comment:创建人名称" json:"creatorName,omitempty"` // 创建人名称
	UpdaterID   string          `gorm:"comment:修改人" json:"updaterID,omitempty"`     // 修改人
	UpdaterName string          `gorm:"comment:修改人名称" json:"updaterName,omitempty"` // 修改人名称
}

func (*BaseModel) BeforeCreate

func (i *BaseModel) BeforeCreate(tx *gorm.DB) (err error)

func (*BaseModel) BeforeUpdate added in v1.3.0

func (i *BaseModel) BeforeUpdate(tx *gorm.DB) (err error)

type BaseRepository

type BaseRepository[T any] struct {
	// contains filtered or unexported fields
}

func NewBaseRepository

func NewBaseRepository[T any](db *gorm.DB) BaseRepository[T]

func (*BaseRepository[T]) ChangeStatus

func (i *BaseRepository[T]) ChangeStatus(req *ChangeStatus) error

ChangeStatus 更改状态,我们经常会需要单独的更改状态,比如禁用,启用等。

func (*BaseRepository[T]) Delete

func (i *BaseRepository[T]) Delete(ids ...any) error

Delete 删除数据

func (*BaseRepository[T]) Detail

func (i *BaseRepository[T]) Detail(id any) (*T, error)

Detail 获取详情

func (*BaseRepository[T]) Retrieve

func (i *BaseRepository[T]) Retrieve(page, pageSize int, fn func(db *gorm.DB)) (count int64, list []T, err error)

Retrieve 获取详情

func (*BaseRepository[T]) Save

func (i *BaseRepository[T]) Save(data *T) error

Save 保存或者更新, save 会保存所有字段,包括零值字段

func (*BaseRepository[T]) Unique

func (i *BaseRepository[T]) Unique(id uint, fn func(db *gorm.DB)) (*T, bool)

Unique 唯一性判断

func (*BaseRepository[T]) WithContext

func (i *BaseRepository[T]) WithContext(ctx context.Context) *BaseRepository[T]

type ChangeStatus

type ChangeStatus struct {
	ID     uint `json:"id,string" binding:"required"`
	Status int  `json:"status"`
}

type Connector

type Connector interface {
	Open(cfg *gorm.Config) (*gorm.DB, error) // 连接数据库
	Options() *Options                       // 返回配置
	DefaultOptions() *Options                // 返回默认配置
	GetDSN() string                          // 获取 DSN
}

type CustomReplacer

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

func (CustomReplacer) Replace

func (r CustomReplacer) Replace(name string) string

type DBServiceProvider

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

func (*DBServiceProvider) Boot

func (i *DBServiceProvider) Boot()

func (*DBServiceProvider) Conf added in v1.3.0

func (i *DBServiceProvider) Conf() map[string]string

func (*DBServiceProvider) Description added in v1.3.0

func (i *DBServiceProvider) Description() string

func (*DBServiceProvider) Register

func (i *DBServiceProvider) Register()

type Driver

type Driver string
const ClickHouse Driver = "clickhouse"
const DM Driver = "dm" // 达梦数据库
const Mysql Driver = "mysql"
const Oracle Driver = "oracle"
const Pgsql Driver = "pgsql"
const Sqlite Driver = "sqlite"

type MysqlConnector

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

func NewMysqlConnector

func NewMysqlConnector(opt *Options) *MysqlConnector

func (*MysqlConnector) DefaultOptions

func (i *MysqlConnector) DefaultOptions() *Options

func (*MysqlConnector) GetDSN

func (i *MysqlConnector) GetDSN() string

func (*MysqlConnector) Open

func (i *MysqlConnector) Open(cfg *gorm.Config) (*gorm.DB, error)

func (*MysqlConnector) Options

func (i *MysqlConnector) Options() *Options

type Options

type Options struct {
	Username     string `json:"username"`
	Password     string `json:"password"`
	Host         string `json:"host"`
	Port         int    `json:"port"`
	Driver       Driver `json:"driver"` // 数据库类型
	Database     string `json:"database"`
	Schema       string `json:"schema"`
	Charset      string `json:"charset"`
	Query        string `json:"query"`
	MaxIdleConns int    `json:"max-idle-conns"`
	MaxConns     int    `json:"max-conns"`
	TimeZone     string `json:"time-zone"`
}

type OwlGormLogger

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

func NewOwlGormLogger

func NewOwlGormLogger(l logContract.Logger) *OwlGormLogger

func (*OwlGormLogger) Error

func (i *OwlGormLogger) Error(ctx context.Context, msg string, data ...interface{})

func (*OwlGormLogger) Info

func (i *OwlGormLogger) Info(ctx context.Context, msg string, data ...interface{})

func (*OwlGormLogger) LogMode

func (i *OwlGormLogger) LogMode(level logger.LogLevel) logger.Interface

func (*OwlGormLogger) Trace

func (i *OwlGormLogger) Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)

func (*OwlGormLogger) Warn

func (i *OwlGormLogger) Warn(ctx context.Context, msg string, data ...interface{})

Jump to

Keyboard shortcuts

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