gplus

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 26, 2023 License: Apache-2.0 Imports: 8 Imported by: 1

Documentation

Index

Constants

View Source
const (
	Comma              = ","
	LeftBracket        = "("
	RightBracket       = ")"
	DefaultPrimaryName = "id"
)
View Source
const (
	And     = "AND"
	Or      = "OR"
	In      = "IN"
	Not     = "NOT"
	Like    = "LIKE"
	Eq      = "="
	Ne      = "<>"
	Gt      = ">"
	Ge      = ">="
	Lt      = "<"
	Le      = "<="
	Between = "BETWEEN"
	Desc    = "DESC"
	Asc     = "ASC"
	As      = "AS"
	SUM     = "SUM"
	AVG     = "AVG"
	MAX     = "MAX"
	MIN     = "MIN"
	COUNT   = "COUNT"
)

Variables

This section is empty.

Functions

func Begin

func Begin(opts ...*sql.TxOptions) *gorm.DB

func Cache

func Cache(models ...any)

Cache 缓存实体对象所有的字段名

func Delete

func Delete[T any](q *QueryCond[T], opts ...OptionFunc) *gorm.DB

Delete 根据条件删除记录

func DeleteById

func DeleteById[T any](id any, opts ...OptionFunc) *gorm.DB

DeleteById 根据 ID 删除记录

func DeleteByIds

func DeleteByIds[T any](ids any, opts ...OptionFunc) *gorm.DB

DeleteByIds 根据 ID 批量删除记录

func Exists

func Exists[T any](q *QueryCond[T], opts ...OptionFunc) (bool, error)

Exists 根据条件判断记录是否存在

func GetModel

func GetModel[T any]() *T

GetModel 获取

func Init

func Init(db *gorm.DB)

func Insert

func Insert[T any](entity *T, opts ...OptionFunc) *gorm.DB

Insert 插入一条记录

func InsertBatch

func InsertBatch[T any](entities []*T, opts ...OptionFunc) *gorm.DB

InsertBatch 批量插入多条记录

func InsertBatchSize

func InsertBatchSize[T any](entities []*T, batchSize int, opts ...OptionFunc) *gorm.DB

InsertBatchSize 批量插入多条记录

func SelectById

func SelectById[T any](id any, opts ...OptionFunc) (*T, *gorm.DB)

SelectById 根据 ID 查询单条记录

func SelectByIds

func SelectByIds[T any](ids any, opts ...OptionFunc) ([]*T, *gorm.DB)

SelectByIds 根据 ID 查询多条记录

func SelectCount

func SelectCount[T any](q *QueryCond[T], opts ...OptionFunc) (int64, *gorm.DB)

SelectCount 根据条件查询记录数量

func SelectList

func SelectList[T any](q *QueryCond[T], opts ...OptionFunc) ([]*T, *gorm.DB)

SelectList 根据条件查询多条记录

func SelectListByMap

func SelectListByMap[T any](q *QueryCond[T], opts ...OptionFunc) ([]*T, *gorm.DB)

SelectListByMap 根据 Map 查询多条记录

func SelectListMaps

func SelectListMaps[T any](q *QueryCond[T], opts ...OptionFunc) ([]map[string]any, *gorm.DB)

SelectListMaps 根据条件查询,返回Map记录

func SelectListModel

func SelectListModel[T any, R any](q *QueryCond[T], opts ...OptionFunc) ([]*R, *gorm.DB)

SelectListModel 根据条件查询多条记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体

func SelectOne

func SelectOne[T any](q *QueryCond[T], opts ...OptionFunc) (*T, *gorm.DB)

SelectOne 根据条件查询单条记录

func Update

func Update[T any](q *QueryCond[T], opts ...OptionFunc) *gorm.DB

Update 根据 Map 更新

func UpdateById

func UpdateById[T any](entity *T, opts ...OptionFunc) *gorm.DB

UpdateById 根据 ID 更新

Types

type Dao

type Dao[T any] struct{}

func (Dao[T]) NewQuery

func (dao Dao[T]) NewQuery() (*QueryCond[T], *T)

type Function

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

func Avg

func Avg(columnName any) *Function

func Count

func Count(columnName any) *Function

func Max

func Max(columnName any) *Function

func Min

func Min(columnName any) *Function

func Sum

func Sum(columnName any) *Function

func (*Function) As

func (f *Function) As(asName any) string

func (*Function) Between

func (f *Function) Between(start int64, end int64) (string, int64, int64)

func (*Function) Eq

func (f *Function) Eq(value int64) (string, int64)

func (*Function) Ge

func (f *Function) Ge(value int64) (string, int64)

func (*Function) Gt

func (f *Function) Gt(value int64) (string, int64)

func (*Function) In

func (f *Function) In(values ...any) (string, []any)

func (*Function) Le

func (f *Function) Le(value int64) (string, int64)

func (*Function) Lt

func (f *Function) Lt(value int64) (string, int64)

func (*Function) Ne

func (f *Function) Ne(value int64) (string, int64)

func (*Function) NotBetween

func (f *Function) NotBetween(start int64, end int64) (string, int64, int64)

func (*Function) NotIn

func (f *Function) NotIn(values ...any) (string, []any)

type Option

type Option struct {
	Db          *gorm.DB
	Selects     []any
	Omits       []any
	IgnoreTotal bool
}

type OptionFunc

type OptionFunc func(*Option)

func Db

func Db(db *gorm.DB) OptionFunc

Db 使用传入的Db对象

func IgnoreTotal

func IgnoreTotal() OptionFunc

IgnoreTotal 分页查询忽略总数 issue: https://github.com/acmestack/gorm-plus/issues/37

func Omit

func Omit(columns ...any) OptionFunc

Omit 指定需要忽略的字段

func Select

func Select(columns ...any) OptionFunc

Select 指定需要查询的字段

func Session

func Session(session *gorm.Session) OptionFunc

Session 创建回话

type Page

type Page[T any] struct {
	Current int
	Size    int
	Total   int64
	Records []*T
}

func NewPage

func NewPage[T any](current, size int) *Page[T]

func SelectPage

func SelectPage[T any](page *Page[T], q *QueryCond[T], opts ...OptionFunc) (*Page[T], *gorm.DB)

SelectPage 根据条件分页查询记录

func SelectPageMaps

func SelectPageMaps[T any](page *Page[map[string]any], q *QueryCond[T], opts ...OptionFunc) (*Page[map[string]any], *gorm.DB)

SelectPageMaps 根据条件分页查询,返回分页Map记录

func SelectPageModel

func SelectPageModel[T any, R any](page *Page[R], q *QueryCond[T], opts ...OptionFunc) (*Page[R], *gorm.DB)

SelectPageModel 根据条件分页查询记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体

type QueryCond

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

func NewQuery

func NewQuery[T any]() (*QueryCond[T], *T)

NewQuery 构建查询条件

func NewQueryModel

func NewQueryModel[T any, R any]() (*QueryCond[T], *T, *R)

NewQueryModel 构建查询条件

func (*QueryCond[T]) And

func (q *QueryCond[T]) And(fn ...func(q *QueryCond[T])) *QueryCond[T]

And 拼接 AND

func (*QueryCond[T]) Between

func (q *QueryCond[T]) Between(column any, start, end any) *QueryCond[T]

Between BETWEEN 值1 AND 值2

func (*QueryCond[T]) Distinct

func (q *QueryCond[T]) Distinct(columns ...any) *QueryCond[T]

Distinct 去除重复字段值

func (*QueryCond[T]) Eq

func (q *QueryCond[T]) Eq(column any, val any) *QueryCond[T]

Eq 等于 =

func (*QueryCond[T]) Ge

func (q *QueryCond[T]) Ge(column any, val any) *QueryCond[T]

Ge 大于等于 >=

func (*QueryCond[T]) Group

func (q *QueryCond[T]) Group(columns ...any) *QueryCond[T]

Group 分组:GROUP BY 字段1,字段2

func (*QueryCond[T]) Gt

func (q *QueryCond[T]) Gt(column any, val any) *QueryCond[T]

Gt 大于 >

func (*QueryCond[T]) Having

func (q *QueryCond[T]) Having(having string, args ...any) *QueryCond[T]

Having HAVING SQl语句

func (*QueryCond[T]) In

func (q *QueryCond[T]) In(column any, val any) *QueryCond[T]

In 字段 IN (值1, 值2, ...)

func (*QueryCond[T]) IsNotNull

func (q *QueryCond[T]) IsNotNull(column any) *QueryCond[T]

IsNotNull 是否非空 字段 IS NOT NULL

func (*QueryCond[T]) IsNull

func (q *QueryCond[T]) IsNull(column any) *QueryCond[T]

IsNull 是否为空 字段 IS NULL

func (*QueryCond[T]) Le

func (q *QueryCond[T]) Le(column any, val any) *QueryCond[T]

Le 小于等于 <=

func (*QueryCond[T]) Like

func (q *QueryCond[T]) Like(column any, val any) *QueryCond[T]

Like 模糊 LIKE '%值%'

func (*QueryCond[T]) LikeLeft

func (q *QueryCond[T]) LikeLeft(column any, val any) *QueryCond[T]

LikeLeft 左模糊 LIKE '%值'

func (*QueryCond[T]) LikeRight

func (q *QueryCond[T]) LikeRight(column any, val any) *QueryCond[T]

LikeRight 右模糊 LIKE '值%'

func (*QueryCond[T]) Limit

func (q *QueryCond[T]) Limit(limit int) *QueryCond[T]

Limit 指的查询记录数量

func (*QueryCond[T]) Lt

func (q *QueryCond[T]) Lt(column any, val any) *QueryCond[T]

Lt 小于 <

func (*QueryCond[T]) Ne

func (q *QueryCond[T]) Ne(column any, val any) *QueryCond[T]

Ne 不等于 !=

func (*QueryCond[T]) NotBetween

func (q *QueryCond[T]) NotBetween(column any, start, end any) *QueryCond[T]

NotBetween NOT BETWEEN 值1 AND 值2

func (*QueryCond[T]) NotIn

func (q *QueryCond[T]) NotIn(column any, val any) *QueryCond[T]

NotIn 字段 NOT IN (值1, 值2, ...)

func (*QueryCond[T]) NotLike

func (q *QueryCond[T]) NotLike(column any, val any) *QueryCond[T]

NotLike 非模糊 NOT LIKE '%值%'

func (*QueryCond[T]) Offset

func (q *QueryCond[T]) Offset(offset int) *QueryCond[T]

Offset 指定跳过记录数量

func (*QueryCond[T]) Or

func (q *QueryCond[T]) Or(fn ...func(q *QueryCond[T])) *QueryCond[T]

Or 拼接 OR

func (*QueryCond[T]) OrderByAsc

func (q *QueryCond[T]) OrderByAsc(columns ...any) *QueryCond[T]

OrderByAsc 排序:ORDER BY 字段1,字段2 ASC

func (*QueryCond[T]) OrderByDesc

func (q *QueryCond[T]) OrderByDesc(columns ...any) *QueryCond[T]

OrderByDesc 排序:ORDER BY 字段1,字段2 Desc

func (*QueryCond[T]) Select

func (q *QueryCond[T]) Select(columns ...any) *QueryCond[T]

Select 查询字段

func (*QueryCond[T]) Set

func (q *QueryCond[T]) Set(column any, val any) *QueryCond[T]

Set 设置更新的字段

Jump to

Keyboard shortcuts

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