gorm

package
v0.0.0-...-04e6e7a Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2022 License: Apache-2.0 Imports: 12 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertLevel

func ConvertLevel(level string) log.LogLevel

ConvertLevel 字符串转等级数值

func FindOne

func FindOne(db *gorm.DB, out interface{}) (bool, error)

FindOne 查询单条数据

func FindPage

func FindPage(ctx context.Context, db *gorm.DB, pp PaginationParam, out interface{}) (int64, error)

FindPage 查询分页数据

func FromNoTrans

func FromNoTrans(ctx context.Context) bool

FromNoTrans 从上下文中获取不使用事务标识

func FromTraceID

func FromTraceID(ctx context.Context) (string, bool)

FromTraceID 从上下文中获取追踪ID

func FromTrans

func FromTrans(ctx context.Context) (interface{}, bool)

FromTrans 从上下文中获取事务

func FromTransLock

func FromTransLock(ctx context.Context) bool

FromTransLock 从上下文中获取事务锁

func FromUserID

func FromUserID(ctx context.Context) uint64

FromUserID 从上下文中获取用户ID

func FromUserName

func FromUserName(ctx context.Context) string

FromUserName 从上下文中获取用户名

func GetDB

func GetDB(ctx context.Context, defDB *gorm.DB) *gorm.DB

GetDB 从上下文中获取DB

func GetDbWithModel

func GetDbWithModel(ctx context.Context, defDB *gorm.DB, m interface{}) *gorm.DB

GetDbWithModel 获取db

func NewNoTrans

func NewNoTrans(ctx context.Context) context.Context

NewNoTrans 创建不使用事务的上下文

func NewTraceID

func NewTraceID(ctx context.Context, traceID string) context.Context

NewTraceID 创建追踪ID的上下文

func NewTrans

func NewTrans(ctx context.Context, trans interface{}) context.Context

NewTrans 创建事务的上下文

func NewTransLock

func NewTransLock(ctx context.Context) context.Context

NewTransLock 创建事务锁的上下文

func NewUserID

func NewUserID(ctx context.Context, userID uint64) context.Context

NewUserID 创建用户ID的上下文

func NewUserName

func NewUserName(ctx context.Context, userName string) context.Context

NewUserName 创建用户名的上下文

func ParseOrder

func ParseOrder(items []*OrderField, handle ...OrderFieldFunc) string

ParseOrder 解析排序字段

func Register

func Register(name string, driverFunc DriverFunc)

Register 注册驱动方法

Types

type Config

type Config struct {
	Drive           string        `json:"drive"`             // 驱动
	DNS             string        `json:"dns"`               // 连接字符串
	Debug           bool          `json:"debug"`             // 是否开启调试
	MaxIdleConns    int           `json:"max_idle_conns"`    // 最大空闲连接数
	MaxOpenConns    int           `json:"max_open_conns"`    // 最大活动连接数
	ConnMaxLifetime time.Duration `json:"conn_max_lifetime"` // 连接的最大存活时间

	*GormConfig // gorm初始化配置
	*LogConfig  // 日志配置
	// contains filtered or unexported fields
}

Config 配置信息

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig 默认gorm配置

func RawConfig

func RawConfig(key string) *Config

RawConfig 根据key读取配置信息

func ScanConfig

func ScanConfig(name string) *Config

ScanConfig 根据名称读取配置信息

func (*Config) Build

func (c *Config) Build() *DB

Build 构建gorm数据库链接

func (*Config) WithDialector

func (c *Config) WithDialector(dialect Dialector) *Config

WithDialector 单独设置Dialector

type DB

type DB = gorm.DB

func Open

func Open(dialect gorm.Dialector, c *Config) (*DB, error)

Open 打开链接

type Dialector

type Dialector = gorm.Dialector

type DriverFunc

type DriverFunc = func(dns string) Dialector

type GormConfig

type GormConfig gorm.Config

type LogConfig

type LogConfig struct {
	SlowThreshold time.Duration // 日志时间阈值
	Colorful      bool          // 是否开启日志颜色区别
	LogLevel      string        // 日志等级
}

LogConfig 日志配置

func DefaultLogConfig

func DefaultLogConfig() *LogConfig

DefaultLogConfig 默认的日志配置

type Model

type Model struct {
	ID        uint64 `gorm:"primaryKey;"`
	CreatedAt int64
	UpdatedAt int64
}

type OrderDirection

type OrderDirection int

OrderDirection 排序方向

const (
	// OrderByASC 升序排序
	OrderByASC OrderDirection = iota + 1
	// OrderByDESC 降序排序
	OrderByDESC
)

type OrderField

type OrderField struct {
	Key       string         // 字段名(字段名约束为小写蛇形)
	Direction OrderDirection // 排序方向
}

OrderField 排序字段

func NewOrderField

func NewOrderField(key string, d OrderDirection) *OrderField

NewOrderField 创建排序字段

type OrderFieldFunc

type OrderFieldFunc func(string) string

OrderFieldFunc 排序字段转换函数

type PaginationParam

type PaginationParam struct {
	Pagination bool `form:"-"`                                     // 是否使用分页查询
	OnlyCount  bool `form:"-"`                                     // 是否仅查询count
	Page       int  `form:"page,default=1"`                        // 当前页
	PageSize   int  `form:"pageSize,default=10" binding:"max=100"` // 页大小
}

PaginationParam 分页查询参数

func (PaginationParam) GetPage

func (p PaginationParam) GetPage() int

GetPage 获取当前页

func (PaginationParam) GetPageSize

func (p PaginationParam) GetPageSize() int

GetPageSize 每页现实数量

type PaginationResult

type PaginationResult struct {
	Total    int64 `json:"total"`
	Page     int   `json:"page"`
	PageSize int   `json:"page_size"`
}

PaginationResult 分页查询结果

func WrapPageQuery

func WrapPageQuery(ctx context.Context, db *gorm.DB, pp PaginationParam, out interface{}) (*PaginationResult, error)

WrapPageQuery 包装带有分页的查询

type QueryOptions

type QueryOptions struct {
	OrderFields  []*OrderField // 排序字段
	SelectFields []string      // 查询字段
}

QueryOptions 查询可选参数项

func GetQueryOption

func GetQueryOption(opts ...QueryOptions) QueryOptions

GetQueryOption 获取查询参数

Directories

Path Synopsis
driver

Jump to

Keyboard shortcuts

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