gplus

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2023 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Overview

* Licensed to the AcmeStack under one or more contributor license * agreements. See the NOTICE file distributed with this work for * additional information regarding copyright ownership. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func As added in v0.1.0

func As(columnName any, asName any) string

func Begin added in v0.1.0

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

func Cache added in v0.1.0

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 added in v0.1.0

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

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

func GetModel added in v0.1.0

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 LikeLeft added in v0.1.5

func LikeLeft(query *QueryCond[any], name string, value any)

func LikeRight added in v0.1.5

func LikeRight(query *QueryCond[any], name string, value any)

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 SelectGeneric added in v0.1.0

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

SelectGeneric 根据传入的泛型封装记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体

func SelectList

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

SelectList 根据条件查询多条记录

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 更新,默认零值不更新

func UpdateZeroById added in v0.1.0

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

UpdateZeroById 根据 ID 零值更新

Types

type Condition added in v0.1.5

type Condition struct {
	Group       string
	ColumnName  string
	Op          string
	ColumnValue any
}

type Dao added in v0.0.14

type Dao[T any] struct{}

func (Dao[T]) NewQuery added in v0.0.14

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

type Function added in v0.1.0

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

func Avg added in v0.1.0

func Avg(columnName any) *Function

func Count added in v0.1.0

func Count(columnName any) *Function

func Max added in v0.1.0

func Max(columnName any) *Function

func Min added in v0.1.0

func Min(columnName any) *Function

func Sum added in v0.1.0

func Sum(columnName any) *Function

func (*Function) As added in v0.1.0

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

func (*Function) Between added in v0.1.0

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

func (*Function) Eq added in v0.1.0

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

func (*Function) Ge added in v0.1.0

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

func (*Function) Gt added in v0.1.0

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

func (*Function) In added in v0.1.0

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

func (*Function) Le added in v0.1.0

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

func (*Function) Lt added in v0.1.0

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

func (*Function) Ne added in v0.1.0

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

func (*Function) NotBetween added in v0.1.0

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

func (*Function) NotIn added in v0.1.0

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

type Option added in v0.1.0

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

type OptionFunc added in v0.1.0

type OptionFunc func(*Option)

func Db added in v0.1.0

func Db(db *gorm.DB) OptionFunc

Db 使用传入的Db对象

func IgnoreTotal added in v0.1.0

func IgnoreTotal() OptionFunc

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

func Omit added in v0.1.0

func Omit(columns ...any) OptionFunc

Omit 指定需要忽略的字段

func Select added in v0.1.0

func Select(columns ...any) OptionFunc

Select 指定需要查询的字段

func Session added in v0.1.0

func Session(session *gorm.Session) OptionFunc

Session 创建回话

type Page

type Page[T any] struct {
	Current    int
	Size       int
	Total      int64
	Records    []*T
	RecordsMap []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 SelectPageGeneric added in v0.1.0

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

SelectPageGeneric 根据传入的泛型封装分页记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体

type QueryCond added in v0.1.0

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

func BuildQuery added in v0.1.5

func BuildQuery[T any](queryParams url.Values) *QueryCond[T]

func NewQuery

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

NewQuery 构建查询条件

func NewQueryModel added in v0.1.0

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

NewQueryModel 构建查询条件

func (*QueryCond[T]) And added in v0.1.0

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

And 拼接 AND

func (*QueryCond[T]) Between added in v0.1.0

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

Between BETWEEN 值1 AND 值2

func (*QueryCond[T]) Distinct added in v0.1.0

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

Distinct 去除重复字段值

func (*QueryCond[T]) Eq added in v0.1.0

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

Eq 等于 =

func (*QueryCond[T]) Ge added in v0.1.0

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

Ge 大于等于 >=

func (*QueryCond[T]) Group added in v0.1.0

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

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

func (*QueryCond[T]) Gt added in v0.1.0

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

Gt 大于 >

func (*QueryCond[T]) Having added in v0.1.0

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

Having HAVING SQl语句

func (*QueryCond[T]) In added in v0.1.0

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

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

func (*QueryCond[T]) IsNotNull added in v0.1.0

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

IsNotNull 是否非空 字段 IS NOT NULL

func (*QueryCond[T]) IsNull added in v0.1.0

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

IsNull 是否为空 字段 IS NULL

func (*QueryCond[T]) Le added in v0.1.0

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

Le 小于等于 <=

func (*QueryCond[T]) Like added in v0.1.0

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

Like 模糊 LIKE '%值%'

func (*QueryCond[T]) LikeLeft added in v0.1.0

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

LikeLeft 左模糊 LIKE '%值'

func (*QueryCond[T]) LikeRight added in v0.1.0

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

LikeRight 右模糊 LIKE '值%'

func (*QueryCond[T]) Lt added in v0.1.0

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

Lt 小于 <

func (*QueryCond[T]) Ne added in v0.1.0

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

Ne 不等于 !=

func (*QueryCond[T]) NotBetween added in v0.1.0

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

NotBetween NOT BETWEEN 值1 AND 值2

func (*QueryCond[T]) NotIn added in v0.1.0

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

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

func (*QueryCond[T]) NotLike added in v0.1.0

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

NotLike 非模糊 NOT LIKE '%值%'

func (*QueryCond[T]) NotLikeLeft added in v0.1.5

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

NotLikeLeft 非左模糊 NOT LIKE '%值'

func (*QueryCond[T]) NotLikeRight added in v0.1.5

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

NotLikeRight 非右模糊 NOT LIKE '值%'

func (*QueryCond[T]) Omit added in v0.1.5

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

Omit 忽略字段

func (*QueryCond[T]) Or added in v0.1.0

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

Or 拼接 OR

func (*QueryCond[T]) OrderByAsc added in v0.1.0

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

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

func (*QueryCond[T]) OrderByDesc added in v0.1.0

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

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

func (*QueryCond[T]) Select added in v0.1.0

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

Select 查询字段

func (*QueryCond[T]) Set added in v0.1.0

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

Set 设置更新的字段

type SqlSegment added in v0.1.5

type SqlSegment interface {
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

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