Documentation
¶
Overview ¶
Package query 查询操作的相关功能
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PagingResponser ¶
func PagingResponser[T any](ctx *web.Context, l *Limit, sql *sqlbuilder.SelectStmt, f func(*T)) web.Responser
PagingResponser 将分页对象封装成 web.Responser
T 为返回给客户端数据元素项的类型,必须为非指针类型。 f 用于对当前页的每一个数据 *T 进行额外处理;
func PagingResponserWithConvert ¶
func PagingResponserWithConvert[T, R any](ctx *web.Context, l *Limit, sql *sqlbuilder.SelectStmt, convert func(*T) *R) web.Responser
PagingResponserWithConvert 将分页对象的元素通过 convert 转换之后封装成 web.Responser
T 为从数据库读取的数据类型,R 为返回给客户端数据元素项的类型。两者都不能为指针类型; convert 用于将当前页的每个数据 *T 转换成 *R 类型;
Types ¶
type Limit ¶
type Limit struct { Page int `query:"page,0"` // 请求的页码,从 0 开始。 Size int `query:"size,20"` // 每页的数量 }
Limit 分页查询中总会带的查询参数
func (*Limit) Filter ¶
func (l *Limit) Filter(v *web.FilterContext)
type Page ¶
type Page[T any] struct { XMLName struct{} `json:"-" xml:"page" cbor:"-" yaml:"-"` Count int64 `json:"count" xml:"count,attr" cbor:"count" yaml:"count"` // 符合条件的所有数据 Current []*T `json:"current" xml:"current" cbor:"current" yaml:"current"` // 当前页的数据 More bool `json:"more,omitempty" xml:"more,attr,omitempty" cbor:"more,omitempty" yaml:"more,omitempty"` // 是否还有更多的数据 }
Page 分页对象
T 为返回给客户端数据元素项的类型,必须为非指针类型。
func Paging ¶
func Paging[T any](l *Limit, sql *sqlbuilder.SelectStmt, f func(*T)) (*Page[T], error)
Paging 返回分页对象
T 为返回给客户端数据元素项的类型,必须为非指针类型。最终给客户的数据为 []*T。 f 用于对当前页的每一个元素 *T 进行额外处理;
func PagingWithConvert ¶ added in v0.7.11
func PagingWithConvert[T, R any](l *Limit, sql *sqlbuilder.SelectStmt, f func(*T) *R) (*Page[R], error)
PagingWithConvert 返回分页对象
T 为从数据库读取的数据类型,R 为返回给客户端数据元素项的类型。两者都不能为指针类型; f 用于对当前页的每一个元素 *T 进行额外处理;
Click to show internal directories.
Click to hide internal directories.