db

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildQuery

func BuildQuery(f any) (string, []any)

func Count

func Count(ctx context.Context, v schema.Tabler, f Filter) (total int64, err error)

Count 计数

func Create

func Create(ctx context.Context, v any) error

Create 新增记录

func Delete

func Delete(ctx context.Context, m schema.Tabler, f Filter) (int64, error)

Delete 删除记录

func EscapeField

func EscapeField(field string) string

EscapeField 字段名称加上双引号,防止字段名与SQL关键字相同导致查询错误。

func Find

func Find(ctx context.Context, f Filter, v any) error

Find 查多条记录

func FindOne

func FindOne(ctx context.Context, f Filter, v any) error

FindOne 只查一条记录

func GetDB

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

GetDB 返回实例

func HasNextPage

func HasNextPage(total int64, page int64, pageSize int64) bool

HasNextPage 是否有下一页

func HasRecrods

func HasRecrods(total int64, page int64, pageSize int64) bool

HasRecrods 当前页码是否有记录

func Init

func Init(cfg Config)

Init 初始化

func IsDbError

func IsDbError(err error) bool

func IsRecordNotFound

func IsRecordNotFound(err error) bool

func Save

func Save(ctx context.Context, v any) error

Save 保存记录

func Update

func Update(ctx context.Context, m schema.Tabler, v any) error

Update 更新数据

func Updates

func Updates(ctx context.Context, m schema.Tabler, f Filter, v any) (int64, error)

Updates 更新数据

Types

type BaseFilter

type BaseFilter struct {
	Fields   string
	OrderBy  string
	Page     int64
	PageSize int64
}

BaseFilter 实现Filter接口的结构体

func NewBaseFilter

func NewBaseFilter(page, size int, orderBy string) BaseFilter

NewBaseFilter

func (BaseFilter) GetFields

func (f BaseFilter) GetFields() string

GetFields 查询字段

func (BaseFilter) GetOrder

func (f BaseFilter) GetOrder() string

GetOrder 排序

func (BaseFilter) GetPage

func (f BaseFilter) GetPage() int64

GetPage 页码

func (BaseFilter) GetPageSize

func (f BaseFilter) GetPageSize() int64

GetPageSize 每页大小

func (BaseFilter) HasNextPage

func (f BaseFilter) HasNextPage(total int64) bool

HasNextPage 是否有下一页

type Config

type Config struct {
	Type     string
	Host     string
	Port     int
	User     string
	Password string
	Name     string
}

type F

type F[T any] struct {
	Op    string
	Value T
}

func Eq

func Eq[T any](v T) F[T]

func Gt

func Gt[T any](v T) F[T]

func Gte

func Gte[T any](v T) F[T]

func In

func In[T any](v []T) F[[]T]

func Like

func Like[T any](v T) F[T]

func Lt

func Lt[T any](v T) F[T]

func Lte

func Lte[T any](v T) F[T]

func NewEmptyF

func NewEmptyF[T any](v T) F[T]

func NewF

func NewF[T any](op string, value T) F[T]

func NotEq

func NotEq[T any](v T) F[T]

func NotIn

func NotIn[T any](v []T) F[[]T]

func NotLike

func NotLike[T any](v T) F[T]

func Omit

func Omit[T any](v T, fn func(T) F[T]) F[T]

Omit 如果值为零值,则不添加条件

func OmitEq

func OmitEq[T any](v T) F[T]

func OmitGt

func OmitGt[T any](v T) F[T]

func OmitGte

func OmitGte[T any](v T) F[T]

func OmitIn

func OmitIn[T any](v []T) F[[]T]

func OmitLike

func OmitLike[T any](v T) F[T]

func OmitLt

func OmitLt[T any](v T) F[T]

func OmitLte

func OmitLte[T any](v T) F[T]

func OmitNotEq

func OmitNotEq[T any](v T) F[T]

func OmitNotIn

func OmitNotIn[T any](v []T) F[[]T]

func OmitNotLike

func OmitNotLike[T any](v T) F[T]

func Omits

func Omits[T any](v []T, fn func([]T) F[[]T]) F[[]T]

Omits 如果值为空,则不添加条件

type Filter

type Filter interface {
	GetFields() string
	GetPage() int64
	GetPageSize() int64
	GetOrder() string
	HasNextPage(total int64) bool
}

Filter 接口

type Model

type Model struct {
	ID        int64     `gorm:"primary_key" json:"id,string"`                       // 主键ID
	CreatedAt time.Time `gorm:"column:created_ts;autoCreateTime" json:"created_at"` // 创建时间
	UpdatedAt time.Time `gorm:"column:updated_ts;autoUpdateTime" json:"updated_at"` // 更新时间
}

Model 基础结构

Jump to

Keyboard shortcuts

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