Documentation ¶
Overview ¶
Package gplus is wrap for gorm
Index ¶
- func As(columnName any, asName any) string
- func Begin(opts ...*sql.TxOptions) *gorm.DB
- func Cache(models ...any)
- func Delete[T any](q *QueryCond[T], opts ...OptionFunc) *gorm.DB
- func DeleteById[T any](id any, opts ...OptionFunc) *gorm.DB
- func DeleteByIds[T any](ids any, opts ...OptionFunc) *gorm.DB
- func ExcSQL(querySQL string, opts ...OptionFunc) *gorm.DB
- func Exists[T any](q *QueryCond[T], opts ...OptionFunc) (bool, error)
- func GetModel[T any]() *T
- func Insert[T any](entity *T, opts ...OptionFunc) *gorm.DB
- func InsertBatch[T any](entities []*T, opts ...OptionFunc) *gorm.DB
- func InsertBatchSize[T any](entities []*T, batchSize int, opts ...OptionFunc) *gorm.DB
- func Pluck[T any, R any](column any, q *QueryCond[T], opts ...OptionFunc) ([]R, *gorm.DB)
- func PluckDistinct[T any, R any](column any, q *QueryCond[T], opts ...OptionFunc) ([]R, *gorm.DB)
- func SelectById[T any](id any, opts ...OptionFunc) (*T, *gorm.DB)
- func SelectByIdGeneric[T any, R any](id any, opts ...OptionFunc) (*R, *gorm.DB)
- func SelectByIds[T any](ids any, opts ...OptionFunc) ([]*T, *gorm.DB)
- func SelectCount[T any](q *QueryCond[T], opts ...OptionFunc) (int64, *gorm.DB)
- func SelectDB(aliasNames ...string) *gorm.DB
- func SelectGeneric[T any, R any](q *QueryCond[T], opts ...OptionFunc) (R, *gorm.DB)
- func SelectList[T any](q *QueryCond[T], opts ...OptionFunc) ([]*T, *gorm.DB)
- func SelectListBySQL[R any](querySQL string, opts ...OptionFunc) ([]*R, *gorm.DB)
- func SelectListGeneric[T any, R any](q *QueryCond[T], opts ...OptionFunc) ([]*R, *gorm.DB)
- func SelectOne[T any](q *QueryCond[T], opts ...OptionFunc) (*T, *gorm.DB)
- func SelectOneBySQL[R any](countSQL string, opts ...OptionFunc) (R, *gorm.DB)
- func SetDB(db *gorm.DB)
- func Update[T any](q *QueryCond[T], opts ...OptionFunc) *gorm.DB
- func UpdateById[T any](entity *T, opts ...OptionFunc) *gorm.DB
- func UpdateZeroById[T any](entity *T, opts ...OptionFunc) *gorm.DB
- type Dao
- type Function
- func (f *Function) As(asName any) string
- func (f *Function) Between(start int64, end int64) (string, int64, int64)
- func (f *Function) Eq(value int64) (string, int64)
- func (f *Function) Ge(value int64) (string, int64)
- func (f *Function) Gt(value int64) (string, int64)
- func (f *Function) In(values ...any) (string, []any)
- func (f *Function) Le(value int64) (string, int64)
- func (f *Function) Lt(value int64) (string, int64)
- func (f *Function) Ne(value int64) (string, int64)
- func (f *Function) NotBetween(start int64, end int64) (string, int64, int64)
- func (f *Function) NotIn(values ...any) (string, []any)
- type Option
- type OptionFunc
- type Page
- type QueryCond
- func (q *QueryCond[T]) AddAndStrCond(cond string) *QueryCond[T]
- func (q *QueryCond[T]) AddOrStrCond(cond string) *QueryCond[T]
- func (q *QueryCond[T]) And(fn ...func(q *QueryCond[T])) *QueryCond[T]
- func (q *QueryCond[T]) Between(column any, start, end any) *QueryCond[T]
- func (q *QueryCond[T]) Case(isTrue bool, handleFunc func()) *QueryCond[T]
- func (q *QueryCond[T]) Distinct(columns ...any) *QueryCond[T]
- func (q *QueryCond[T]) Eq(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Ge(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Group(columns ...any) *QueryCond[T]
- func (q *QueryCond[T]) Gt(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Having(having string, args ...any) *QueryCond[T]
- func (q *QueryCond[T]) In(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) IsNotNull(column any) *QueryCond[T]
- func (q *QueryCond[T]) IsNull(column any) *QueryCond[T]
- func (q *QueryCond[T]) Le(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Like(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) LikeLeft(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) LikeRight(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Lt(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Ne(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) NotBetween(column any, start, end any) *QueryCond[T]
- func (q *QueryCond[T]) NotIn(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) NotLike(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) NotLikeLeft(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) NotLikeRight(column any, val any) *QueryCond[T]
- func (q *QueryCond[T]) Omit(columns ...any) *QueryCond[T]
- func (q *QueryCond[T]) Or(fn ...func(q *QueryCond[T])) *QueryCond[T]
- func (q *QueryCond[T]) OrderByAsc(columns ...any) *QueryCond[T]
- func (q *QueryCond[T]) OrderByDesc(columns ...any) *QueryCond[T]
- func (q *QueryCond[T]) Reset() *QueryCond[T]
- func (q *QueryCond[T]) Select(columns ...any) *QueryCond[T]
- func (q *QueryCond[T]) Set(column any, val any) *QueryCond[T]
- type SQLSegment
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 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 PluckDistinct ¶
PluckDistinct 取某列值,去重
func SelectById ¶
func SelectById[T any](id any, opts ...OptionFunc) (*T, *gorm.DB)
SelectById 根据 ID 查询单条记录
func SelectByIdGeneric ¶
SelectByIdGeneric 查询时,转化为其他类型 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体
func SelectByIds ¶
func SelectByIds[T any](ids any, opts ...OptionFunc) ([]*T, *gorm.DB)
SelectByIds 根据 ID 查询多条记录
func SelectCount ¶
SelectCount 根据条件查询记录数量
func SelectGeneric ¶
SelectGeneric 根据传入的泛型封装记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体
func SelectList ¶
func SelectList[T any](q *QueryCond[T], opts ...OptionFunc) ([]*T, *gorm.DB)
SelectList 根据条件查询多条记录
func SelectListBySQL ¶
func SelectListBySQL[R any](querySQL string, opts ...OptionFunc) ([]*R, *gorm.DB)
SelectListBySQL 按任意SQL执行,指定返回类型数组
func SelectListGeneric ¶
SelectListGeneric 根据条件查询多条记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体
func SelectOne ¶
func SelectOne[T any](q *QueryCond[T], opts ...OptionFunc) (*T, *gorm.DB)
SelectOne 根据条件查询单条记录
func SelectOneBySQL ¶
func SelectOneBySQL[R any](countSQL string, opts ...OptionFunc) (R, *gorm.DB)
SelectOneBySQL 根据原始的SQL语句,取一个
func UpdateById ¶
func UpdateById[T any](entity *T, opts ...OptionFunc) *gorm.DB
UpdateById 根据 ID 更新,默认零值不更新
func UpdateZeroById ¶
func UpdateZeroById[T any](entity *T, opts ...OptionFunc) *gorm.DB
UpdateZeroById 根据 ID 零值更新
Types ¶
type Function ¶
type Function struct {
// contains filtered or unexported fields
}
Function 对数据库操作符的一个封装
func (*Function) NotBetween ¶
type OptionFunc ¶
type OptionFunc func(*Option)
OptionFunc 是 option指令的函数
func IgnoreTotal ¶
func IgnoreTotal() OptionFunc
IgnoreTotal 分页查询忽略总数 issue: https://github.com/aixj1984/golibs/gorm-plus/issues/37
type Page ¶
type Page[T any] struct { Current int `json:"page"` // 页码 Size int `json:"pageSize"` // 每页大小 Total int64 `json:"total"` Records []*T `json:"list"` CurTime int64 `json:"curTime"` // 当前时间,毫秒 RecordsMap []T `json:"listMap"` }
Page 分页查询的返货结果
func SelectPage ¶
SelectPage 根据条件分页查询记录
func SelectPageGeneric ¶
func SelectPageGeneric[T any, R any](page *Page[R], q *QueryCond[T], opts ...OptionFunc) (*Page[R], *gorm.DB)
SelectPageGeneric 根据传入的泛型封装分页记录 第一个泛型代表数据库表实体 第二个泛型代表返回记录实体
type QueryCond ¶
type QueryCond[T any] struct { // contains filtered or unexported fields }
QueryCond 是每一次查询的条件对象
func NewQueryModel ¶
NewQueryModel 构建查询条件
func (*QueryCond[T]) AddAndStrCond ¶
AddAndStrCond 执行增加AND条件
func (*QueryCond[T]) AddOrStrCond ¶
AddOrStrCond 执行增加OR条件
func (*QueryCond[T]) NotBetween ¶
NotBetween NOT BETWEEN 值1 AND 值2
func (*QueryCond[T]) NotLikeLeft ¶
NotLikeLeft 非左模糊 NOT LIKE '%值'
func (*QueryCond[T]) NotLikeRight ¶
NotLikeRight 非右模糊 NOT LIKE '值%'
func (*QueryCond[T]) OrderByAsc ¶
OrderByAsc 排序:ORDER BY 字段1,字段2 ASC
func (*QueryCond[T]) OrderByDesc ¶
OrderByDesc 排序:ORDER BY 字段1,字段2 Desc
type SQLSegment ¶
type SQLSegment interface {
// contains filtered or unexported methods
}
SQLSegment 是一个获取查询片段的基类