wrapper

package
v1.21.9 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2024 License: Zlib Imports: 10 Imported by: 1

Documentation

Index

Constants

View Source
const (
	And       = "AND "
	Or        = "OR "
	Eq        = "= ?"
	Neq       = "<> ?"
	Lt        = "< ?"
	Lte       = "<= ?"
	Gt        = "> ?"
	Gte       = ">= ?"
	NotIn     = "NOT IN ?"
	In        = "IN ?"
	Between   = "BETWEEN ? AND ?"
	Like      = "LIKE ?"
	Exists    = "EXISTS ?"
	NotExists = "NOT EXISTS ?"
)

Operate

View Source
const (
	JoinLeft  = "LEFT"
	JoinRight = "RIGHT"
	JoinInner = "INNER"
	JoinFull  = "FULL"
	JonnCross = "CROSS"
)

内连接(inner join…on…) 全外连接(full join…on…) 左连接(left join…on…) 右连接(right join…on…) 交叉连接(cross join …on…)

View Source
const (
	KSQLFunc = iota
	KSQLCount
	KSQLMax
	KSQLMin
	KSQLWeek
	KSQLYear
	KSQLMonth
	KSQLSum
	KSQLAbs
	KSQLFloor
	KSQLGreatest
	KSQLLeast
	KSQLUpper
	KSQLLower
	KSQLTrim
	KSQLRTrim
	KSQLLTrim
	KSQLCharLength
	KSQLConcat
	KSQLReverse
)

Variables

View Source
var BuilderType = reflect.TypeOf((*IBuilder)(nil)).Elem()
View Source
var CondType = reflect.TypeOf((*ICond)(nil)).Elem()
View Source
var FromType = reflect.TypeOf((*IFrom)(nil)).Elem()
View Source
var InOp = []string{Eq, In}
View Source
var LimitType = reflect.TypeOf((*ILimit)(nil)).Elem()
View Source
var ModelType = reflect.TypeOf((*IModel)(nil)).Elem()
View Source
var NotInOp = []string{Neq, NotIn}
View Source
var QueryType = reflect.TypeOf((*IQuery)(nil)).Elem()
View Source
var SelectType = reflect.TypeOf((*ISelect)(nil)).Elem()

Functions

func AND added in v1.8.22

func AND[T ComposeType](cond *Condition, column string, size int, values []T)

func AddAlias added in v1.8.17

func AddAlias(builder *strings.Builder, v string) bool

func AddQuoted added in v1.8.15

func AddQuoted(builder *strings.Builder, v string) bool

func AddSQLFunc added in v1.3.8

func AddSQLFunc(flag int, fn string)

func AddTable added in v1.20.93

func AddTable(builder *strings.Builder, table string)

func AddVar added in v1.8.15

func AddVar(builder *strings.Builder, val interface{})

func AndCompose added in v1.3.0

func AndCompose[T ComposeType](op []string, cond *Condition, column string, size int, values []T)

func ColumnAs added in v1.20.93

func ColumnAs[T ~string](column T, as string) string

func ColumnName added in v1.20.93

func ColumnName[T ~string](column T) string

func Compose added in v1.8.22

func Compose[T ComposeType](op []string, cond *Condition, column string, size int, values []T)

func IN added in v1.3.31

func IN[T ComposeType](cond *Condition, column string, size int, values []T)

func IsNotFound

func IsNotFound(db *gorm.DB) int

func IsQuoted added in v1.20.95

func IsQuoted(v string) bool

func IsValid

func IsValid(r interface{}) bool

func MLike added in v1.2.16

func MLike(value string) string

MLike %?%

func NIN added in v1.8.22

func NIN[T ComposeType](cond *Condition, column string, size int, values []T)

func OR added in v1.8.22

func OR[T ComposeType](cond *Condition, column string, size int, values []T)

func OrCompose added in v1.3.0

func OrCompose[T ComposeType](op []string, cond *Condition, column string, size int, values []T)

func PLike added in v1.2.16

func PLike(value string) string

PLike %?

func SLike added in v1.2.16

func SLike(value string) string

SLike ?%

func SQLFunc added in v1.3.8

func SQLFunc(flag int) string

func SetFromBuilder added in v1.20.113

func SetFromBuilder(fn FromBuilder)

SetFromBuilder 表名检测,比如名称为 virtual表,返回真名表名是一个子查询

func SqlColumn added in v1.8.16

func SqlColumn(builder *strings.Builder, column string) bool

func TColumnAs added in v1.20.93

func TColumnAs[T ~string](table string, column T, as string) string

func TColumnName added in v1.20.94

func TColumnName[T ~string](table string, column T) string

Types

type Base

type Base struct {
	DB *gorm.DB

	Results interface{}
	// contains filtered or unexported fields
}

func (*Base) Cancel

func (b *Base) Cancel()

func (*Base) Count

func (b *Base) Count(model interface{}, count *int64) error

func (*Base) Create

func (b *Base) Create(model interface{}, opts ...option.QueryFunc) error

func (*Base) Delete

func (b *Base) Delete(model interface{}, cond IQuery) error

func (*Base) Find added in v0.5.1

func (b *Base) Find(model interface{}, where IQuery, sel ISelect) error

func (*Base) First

func (b *Base) First(model interface{}, where IQuery, sel ISelect) error

func (*Base) Get

func (b *Base) Get(model interface{}) (result interface{}, err error)

Get 获取

func (*Base) Gets

func (b *Base) Gets(model interface{}) (results []*interface{}, err error)

Gets 获取批量结果

func (*Base) NewDB

func (b *Base) NewDB() *gorm.DB

func (*Base) UpdateColumn

func (b *Base) UpdateColumn(model interface{}, where IQuery, column string, value interface{}) error

func (*Base) Updates

func (b *Base) Updates(model interface{}, where IQuery, opts ...option.QueryFunc) error

func (*Base) WithOrder

func (b *Base) WithOrder(order interface{}) *Base

func (*Base) WithResult

func (b *Base) WithResult(result interface{}) *Base

type Column added in v1.2.26

type Column struct {
	Flag   //是否函数
	Table  string
	Column string `form:"col" json:"col" yaml:"col"` //项
	As     string `form:"as" json:"as" yaml:"as"`    // 别名
	Expr   string `form:"expr" json:"expr" yaml:"expr"`
	Desc   bool   `form:"desc" json:"desc" yaml:"desc"` //(降序(大=>小)desc, 升序(小=>大)asc
}

func WithColumn added in v1.3.9

func WithColumn(column string) *Column

func WithColumns added in v1.3.9

func WithColumns(cols []string) *Column

func WithTable added in v1.20.93

func WithTable(table string) *Column

func (*Column) AS added in v1.3.8

func (col *Column) AS(as string) *Column

func (*Column) Build added in v1.8.10

func (col *Column) Build(convert option.ColumnConvertFunc) string

func (*Column) Check added in v1.3.8

func (col *Column) Check(filters []FField) *Column

func (*Column) GetColumn added in v1.2.26

func (col *Column) GetColumn(opts ...option.Option) []string

func (*Column) SetColumn added in v1.2.26

func (col *Column) SetColumn(cols []string)

func (*Column) With added in v1.3.8

func (col *Column) With(column string) *Column

func (*Column) WithFunc added in v1.3.8

func (col *Column) WithFunc(fg int) *Column

func (*Column) WithTable added in v1.20.93

func (col *Column) WithTable(table string) *Column

type ComposeType added in v1.3.0

type ComposeType interface {
	~string | bool | ~int8 | ~int16 | ~int | ~int32 | ~int64 | ~uint8 | ~uint16 | ~uint | ~uint32 | ~uint64 | ~float32 | ~float64
}

type Condition

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

func (*Condition) And

func (sq *Condition) And(column, operator string, value any) *Condition

And

 @param column
*  @param operator "=、<小于、>大于、>=大于等于、<=小于等于、<>以及不等于"

func (*Condition) AndBetween added in v1.2.24

func (sq *Condition) AndBetween(column string, value1, value2 any) *Condition

func (*Condition) AndEq added in v0.5.1

func (sq *Condition) AndEq(column string, value any) *Condition

func (*Condition) AndGt added in v0.5.1

func (sq *Condition) AndGt(column string, value any) *Condition

func (*Condition) AndGte added in v1.8.9

func (sq *Condition) AndGte(column string, value any) *Condition

func (*Condition) AndLt added in v0.5.1

func (sq *Condition) AndLt(column string, value any) *Condition

func (*Condition) AndLte added in v1.8.9

func (sq *Condition) AndLte(column string, value any) *Condition

func (*Condition) AndNEq added in v0.5.1

func (sq *Condition) AndNEq(column string, value any) *Condition

func (*Condition) Between added in v1.2.13

func (sq *Condition) Between(column string, value1, value2 any) *Condition

func (*Condition) Build added in v1.8.9

func (sq *Condition) Build(opts ...option.Option) string

func (*Condition) Column

func (sq *Condition) Column(column string) *Condition

Column

  • example db.Where("created_at BETWEEN ? AND ?", lastWeek, today).Find(&users)

func (*Condition) Compose

func (sq *Condition) Compose(column string, operator string, value ...any) *Condition

func (*Condition) ComposeFrom added in v0.5.39

func (sq *Condition) ComposeFrom(src *Condition, operator string) *Condition

ComposeFrom 组合

func (*Condition) Cond

func (sq *Condition) Cond() string

func (*Condition) Eq

func (sq *Condition) Eq(column string, value any) *Condition

func (*Condition) Gt

func (sq *Condition) Gt(column string, value any) *Condition

func (*Condition) GtEq

func (sq *Condition) GtEq(column string, value any) *Condition

func (*Condition) Gte added in v1.20.92

func (sq *Condition) Gte(column string, value any) *Condition

func (*Condition) In

func (sq *Condition) In(column string, value any) *Condition

func (*Condition) Is

func (sq *Condition) Is() bool

func (*Condition) IsFirst added in v0.5.40

func (sq *Condition) IsFirst() bool

func (*Condition) Like

func (sq *Condition) Like(column string, value any) *Condition

Like

@example db.Where("name LIKE ?", "%jin%").Find(&users)
* Condition.Like("name","jin")

func (*Condition) Lt

func (sq *Condition) Lt(column string, value any) *Condition

func (*Condition) LtEq

func (sq *Condition) LtEq(column string, value any) *Condition

func (*Condition) Lte added in v1.20.92

func (sq *Condition) Lte(column string, value any) *Condition

func (*Condition) MLike added in v1.2.16

func (sq *Condition) MLike(column string, value string) *Condition

func (*Condition) Modifier

func (sq *Condition) Modifier(m string) *Condition

Modifier 修饰符,比如 ()

func (*Condition) NEq

func (sq *Condition) NEq(column string, value any) *Condition

func (*Condition) Neq added in v1.20.92

func (sq *Condition) Neq(column string, value any) *Condition

func (*Condition) NotIn added in v1.8.22

func (sq *Condition) NotIn(column string, value any) *Condition

func (*Condition) Operate

func (sq *Condition) Operate(operator string) *Condition

Operate

@param operator
* @example created_at BETWEEN ? AND ?
* Condition.Column("created_at").Operate("BETWEEN").Operate("AND").Values(11333,34444)

func (*Condition) Or

func (sq *Condition) Or(column, operator string, value any) *Condition

func (*Condition) OrBetween added in v1.2.24

func (sq *Condition) OrBetween(column string, value1, value2 any) *Condition

func (*Condition) OrEq added in v0.5.1

func (sq *Condition) OrEq(column string, value any) *Condition

func (*Condition) OrGt added in v0.5.1

func (sq *Condition) OrGt(column string, value any) *Condition

func (*Condition) OrGte added in v1.8.9

func (sq *Condition) OrGte(column string, value any) *Condition

func (*Condition) OrLt added in v0.5.1

func (sq *Condition) OrLt(column string, value any) *Condition

func (*Condition) OrLte added in v1.8.9

func (sq *Condition) OrLte(column string, value any) *Condition

func (*Condition) OrNEq added in v0.5.1

func (sq *Condition) OrNEq(column string, value any) *Condition

func (*Condition) PLike added in v1.2.16

func (sq *Condition) PLike(column string, value string) *Condition

func (*Condition) Query added in v0.5.1

func (sq *Condition) Query() string

func (*Condition) Reset

func (sq *Condition) Reset() *Condition

func (*Condition) SLike added in v1.2.16

func (sq *Condition) SLike(column string, value string) *Condition

func (*Condition) Value

func (sq *Condition) Value() []interface{}

func (*Condition) Values

func (sq *Condition) Values(value ...interface{}) *Condition

type FField added in v1.2.26

type FField string

func (FField) Equal added in v1.2.26

func (ff FField) Equal(des FField) bool

type Flag added in v1.3.8

type Flag struct {
	FInt int `form:"flag" json:"flag" yaml:"flag"`
}

type From added in v1.8.17

type From struct {
	From string `json:"from" yaml:"from"`
	As   string `json:"as" yaml:"as"`
	// contains filtered or unexported fields
}

func (*From) Build added in v1.8.17

func (f *From) Build(opts ...option.Option) string

func (*From) Is added in v1.8.17

func (f *From) Is() bool

func (*From) Reset added in v1.20.114

func (f *From) Reset()

func (*From) SetAs added in v1.8.17

func (f *From) SetAs(as string)

type FromBuilder added in v1.20.113

type FromBuilder func(table string, opts ...option.Option) (IFrom, bool)

type GroupBy added in v1.3.7

type GroupBy []Column

func (*GroupBy) Build added in v1.8.10

func (g *GroupBy) Build(opts ...option.Option) string

func (*GroupBy) Check added in v1.3.7

func (g *GroupBy) Check(filters []FField, opts ...option.Option)

func (*GroupBy) Is added in v1.8.13

func (g *GroupBy) Is() bool

type IBuilder added in v1.8.13

type IBuilder interface {
	Is() bool
	Build(opts ...option.Option) string
}

type ICond added in v1.3.0

type ICond interface {
	HasValid() error
	Decode(cond string)
	BuildCond(cond *Condition)
	Build(key string, cb func(obj interface{})) error
}

type IFrom added in v1.8.17

type IFrom interface {
	SetAs(as string)
	IBuilder
}

type ILimit added in v1.8.14

type ILimit interface {
	GetLimit() int
	GetOffset() int
	IBuilder
}

type IModel added in v1.3.2

type IModel interface {
	Clone() IModel
	Model() interface{}
	Set(key string, v interface{})
	Get(key string) interface{}
	ForEach(cb func(key string, v interface{}))
}

type IQuery added in v0.5.4

type IQuery interface {
	Query() string
	Value() []interface{}
	IBuilder
}

type ISelect added in v0.5.4

type ISelect interface {
	Query() []string
	Value() []interface{}
	IBuilder
}

type Join added in v1.8.9

type Join struct {
	Type  string   `json:"type" yaml:"type"`
	Table string   `json:"table" yaml:"table"`
	Alias string   `json:"as" yaml:"as"`
	ON    string   `json:"expr" yaml:"expr"`
	Using []string `json:"using" yaml:"using"`
}

func (*Join) Build added in v1.8.9

func (jn *Join) Build(opts ...option.Option) string

func (*Join) Is added in v1.8.9

func (jn *Join) Is() bool

func (*Join) JoinType added in v1.8.17

func (jn *Join) JoinType() (string, bool)

type Limit added in v1.2.26

type Limit struct {
	Offset int
	Limit  int
}

func (*Limit) Build added in v1.8.13

func (l *Limit) Build(opts ...option.Option) string

func (*Limit) GetLimit added in v1.8.14

func (l *Limit) GetLimit() int

func (*Limit) GetOffset added in v1.8.14

func (l *Limit) GetOffset() int

func (*Limit) Is added in v1.8.13

func (l *Limit) Is() bool

type MultiJoin added in v1.20.92

type MultiJoin struct {
	Joins []Join
}

func (*MultiJoin) Add added in v1.20.92

func (j *MultiJoin) Add(join Join)

func (*MultiJoin) Build added in v1.20.92

func (j *MultiJoin) Build(opts ...option.Option) string

func (*MultiJoin) Is added in v1.20.92

func (j *MultiJoin) Is() bool

func (*MultiJoin) Query added in v1.20.92

func (j *MultiJoin) Query() string

func (*MultiJoin) Value added in v1.20.92

func (j *MultiJoin) Value() []interface{}

type NewCondFunc added in v1.3.0

type NewCondFunc func() ICond

type NewModelFunc added in v1.3.0

type NewModelFunc func() IModel

type OrderBy added in v1.2.26

type OrderBy []Column

OrderBy 排序(降序(大=>小)desc, 升序(小=>大)asc example: "orderBy:[{"col:"create_at","desc":true}, {"col":"id","desc":false}]

"orderBy:[{"col:"create_at,id","desc":true}]

func (*OrderBy) Build added in v1.8.10

func (ob *OrderBy) Build(opts ...option.Option) string

func (*OrderBy) Check added in v1.2.26

func (ob *OrderBy) Check(filters []FField, opts ...option.Option)

func (*OrderBy) Is added in v1.8.13

func (ob *OrderBy) Is() bool

type Page

type Page struct {
	Base
	Total int64
	// contains filtered or unexported fields
}

func NewPage

func NewPage(db *gorm.DB, timeout time.Duration) *Page

func (*Page) FindPage added in v0.5.1

func (page *Page) FindPage(model interface{}, where IQuery, sel ISelect) error

FindPage param results := make([]object, 0)

func (*Page) WithOffset

func (page *Page) WithOffset(offset int) *Page

func (*Page) WithSize

func (page *Page) WithSize(size int) *Page

type SQL added in v1.3.7

type SQL struct {
	From     IFrom
	Selector ISelect
	Where    IQuery
	Join     IBuilder
	GroupBy  IBuilder
	OrderBy  IBuilder
	Limit    ILimit
	Opts     []option.Option
}

func NewSQL added in v1.3.7

func NewSQL(from IFrom, opts ...option.Option) *SQL

NewSQL From 表名

func (*SQL) AsChild added in v1.8.17

func (s *SQL) AsChild(as string, opts ...option.Option) From

AsChild 作为子源来使用

func (*SQL) AsSubQuery added in v1.8.22

func (s *SQL) AsSubQuery(as string) *SQL

AsSubQuery 作为子查询使用

func (*SQL) Build added in v1.3.7

func (s *SQL) Build(opts ...option.Option) string

func (*SQL) BuildOpt added in v1.8.23

func (s *SQL) BuildOpt(opts ...option.Option) string

func (*SQL) Is added in v1.20.113

func (s *SQL) Is() bool

func (*SQL) SetAs added in v1.20.113

func (s *SQL) SetAs(as string)

func (*SQL) WithFrom added in v1.20.112

func (s *SQL) WithFrom(from IFrom) *SQL

func (*SQL) WithGroupBy added in v1.8.14

func (s *SQL) WithGroupBy(by IBuilder) *SQL

func (*SQL) WithJoin added in v1.8.14

func (s *SQL) WithJoin(join IBuilder) *SQL

func (*SQL) WithLimit added in v1.8.12

func (s *SQL) WithLimit(limit ILimit) *SQL

func (*SQL) WithOrderBy added in v1.8.14

func (s *SQL) WithOrderBy(by IBuilder) *SQL

func (*SQL) WithSelector added in v1.8.14

func (s *SQL) WithSelector(sel ISelect) *SQL

func (*SQL) WithWhere added in v1.8.14

func (s *SQL) WithWhere(where IQuery) *SQL

type Select added in v0.5.4

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

func (*Select) Add added in v0.5.4

func (sel *Select) Add(column string) *Select

func (*Select) Build added in v1.8.9

func (sel *Select) Build(opts ...option.Option) string

func (*Select) Clone added in v1.3.6

func (sel *Select) Clone() *Select

func (*Select) Delete added in v1.3.6

func (sel *Select) Delete(column string) *Select

func (*Select) Is added in v0.5.4

func (sel *Select) Is() bool

func (*Select) Query added in v0.5.4

func (sel *Select) Query() []string

func (*Select) Value added in v0.5.4

func (sel *Select) Value() []interface{}

type TableColumn added in v1.8.9

type TableColumn struct {
	Name string `form:"name" json:"name"` //表名
	Col  string `form:"col" json:"col"`   //项
}

func ParseColumn added in v1.8.10

func ParseColumn(column string) TableColumn

func (*TableColumn) Column added in v1.8.10

func (t *TableColumn) Column() string

type Time added in v1.3.0

type Time struct {
	Column   string `form:"col" json:"col"`
	Operator string `form:"operator" json:"operator"`
	Min      int64  `form:"begin" json:"begin"`
	Max      int64  `form:"end" json:"end"`
}

Time 时间范围

func (*Time) Adjust added in v1.3.0

func (t *Time) Adjust()

func (*Time) And added in v1.21.9

func (t *Time) And(cond *Condition)

func (*Time) At added in v1.21.6

func (t *Time) At(at time.Duration, unit int) int64

func (*Time) Cond added in v1.21.5

func (t *Time) Cond(cond *Condition)

func (*Time) Day added in v1.21.6

func (t *Time) Day(day time.Duration, unit int) int64

func (*Time) HasValid added in v1.4.3

func (t *Time) HasValid() bool

func (*Time) Legal added in v1.21.7

func (t *Time) Legal(legal int64)

func (*Time) Month added in v1.21.6

func (t *Time) Month(month time.Duration, unit int) int64

func (*Time) Or added in v1.21.9

func (t *Time) Or(cond *Condition)

type TimeV2 added in v1.3.38

type TimeV2 struct {
	TimCol string `form:"time_col" json:"time_col"`
	TimOp  string `form:"time_op" json:"time_op"`
	Start  int64  `form:"start" json:"start"`
	End    int64  `form:"end" json:"end"`
}

func (*TimeV2) Adjust added in v1.3.38

func (t *TimeV2) Adjust()

func (*TimeV2) And added in v1.21.9

func (t *TimeV2) And(cond *Condition)

func (*TimeV2) At added in v1.21.6

func (t *TimeV2) At(at time.Duration, unit int) int64

func (*TimeV2) BuildCond added in v1.20.54

func (t *TimeV2) BuildCond(cond *Condition)

func (*TimeV2) Day added in v1.21.6

func (t *TimeV2) Day(day time.Duration, unit int) int64

func (*TimeV2) HasValid added in v1.20.54

func (t *TimeV2) HasValid() bool

func (*TimeV2) Legal added in v1.21.7

func (t *TimeV2) Legal(legal int64)

func (*TimeV2) Month added in v1.21.6

func (t *TimeV2) Month(month time.Duration, unit int) int64

func (*TimeV2) Or added in v1.21.9

func (t *TimeV2) Or(cond *Condition)

Jump to

Keyboard shortcuts

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