query

package
v0.8.12 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2025 License: MIT Imports: 3 Imported by: 0

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 进行额外处理;

type Text

type Text struct {
	Limit
	Text string `query:"text"`
}

Text 带分页的文字查询

Jump to

Keyboard shortcuts

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