Documentation
¶
Overview ¶
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 10:33:02 * @FilePath: \go-core\pkg\database\advanced_query.go * @Description: 高级查询参数实现 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-03 20:02:19 * @FilePath: \go-core\pkg\database\client.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 09:15:07 * @FilePath: \go-core\pkg\database\handler.go * @Description: 数据库处理器实现 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 09:15:07 * @FilePath: \go-core\pkg\database\interfaces.go * @Description: 数据库操作接口定义 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 09:15:07 * @FilePath: \go-core\pkg\database\models.go * @Description: 数据库查询相关数据模型 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 09:15:07 * @FilePath: \go-core\pkg\database\query_builder.go * @Description: 查询构建器实现 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 09:58:19 * @FilePath: \go-core\pkg\database\query_params.go * @Description: 查询参数实现 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 09:15:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 09:15:07 * @FilePath: \go-core\pkg\database\utils.go * @Description: 数据库查询工具函数 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
Index ¶
- Constants
- func CamelToCase(name string) string
- func CheckPageRows(currentStr, rowCountStr string) (current, rowCount int)
- func Gorm() *gorm.DB
- func GormMySQL() *gorm.DB
- func GormPostgreSQL() *gorm.DB
- func GormSQLite() *gorm.DB
- type AdvancedQueryParam
- func (a *AdvancedQueryParam) AddFilter(filter *BaseInfoFilter) *AdvancedQueryParam
- func (a *AdvancedQueryParam) AddFindInSet(field string, values []string) *AdvancedQueryParam
- func (a *AdvancedQueryParam) AddTimeRange(field, startTime, endTime string) *AdvancedQueryParam
- func (a *AdvancedQueryParam) Where(db *gorm.DB) *gorm.DB
- type BaseInfoFilter
- type Buffer
- type DatabaseHandler
- func (d *DatabaseHandler) AutoMigrate(dst ...any) error
- func (d *DatabaseHandler) Begin(opts ...*sql.TxOptions) Handler
- func (d *DatabaseHandler) Close() error
- func (d *DatabaseHandler) Commit() error
- func (d *DatabaseHandler) DB() *gorm.DB
- func (d *DatabaseHandler) Query(param QueryParam) *gorm.DB
- func (d *DatabaseHandler) Rollback() error
- type FindOptionCommon
- type Handler
- type PageBean
- type PageInfo
- type PageQueryParam
- type QueryBuilder
- func (qb *QueryBuilder) Build() QueryParam
- func (qb *QueryBuilder) WhereFindInSet(field string, values []string) *QueryBuilder
- func (qb *QueryBuilder) WhereIn(field string, values []interface{}) *QueryBuilder
- func (qb *QueryBuilder) WhereLike(field string, values []interface{}, allRegex bool) *QueryBuilder
- func (qb *QueryBuilder) WhereTimeRange(field, startTime, endTime string) *QueryBuilder
- func (qb *QueryBuilder) WithBusinessId(businessId int64) *QueryBuilder
- func (qb *QueryBuilder) WithGroupBy(groupBy string) *QueryBuilder
- func (qb *QueryBuilder) WithOption(option *FindOptionCommon) *QueryBuilder
- func (qb *QueryBuilder) WithOrder(field, order string) *QueryBuilder
- func (qb *QueryBuilder) WithPagination(limit, offset int) *QueryBuilder
- func (qb *QueryBuilder) WithShopId(shopId int64) *QueryBuilder
- func (qb *QueryBuilder) WithTablePrefix(prefix string) *QueryBuilder
- type QueryParam
- type SimpleQueryParam
Constants ¶
const ( // SQL模式常量 SQLLikePattern = " LIKE ?" SQLEqualsPattern = " = ?" )
数据库方言常量
Variables ¶
This section is empty.
Functions ¶
func CamelToCase ¶
func CheckPageRows ¶
CheckPageRows 获取页数和行数
Types ¶
type AdvancedQueryParam ¶ added in v0.15.3
type AdvancedQueryParam struct {
// contains filtered or unexported fields
}
AdvancedQueryParam 高级查询参数,支持复杂查询构建
func NewAdvancedQueryParam ¶ added in v0.15.3
func NewAdvancedQueryParam(option *FindOptionCommon) *AdvancedQueryParam
NewAdvancedQueryParam 创建高级查询参数
func (*AdvancedQueryParam) AddFilter ¶ added in v0.15.3
func (a *AdvancedQueryParam) AddFilter(filter *BaseInfoFilter) *AdvancedQueryParam
AddFilter 添加过滤器
func (*AdvancedQueryParam) AddFindInSet ¶ added in v0.15.3
func (a *AdvancedQueryParam) AddFindInSet(field string, values []string) *AdvancedQueryParam
AddFindInSet 添加FIND_IN_SET查询
func (*AdvancedQueryParam) AddTimeRange ¶ added in v0.15.3
func (a *AdvancedQueryParam) AddTimeRange(field, startTime, endTime string) *AdvancedQueryParam
AddTimeRange 添加时间范围查询
type BaseInfoFilter ¶ added in v0.15.3
type BaseInfoFilter struct {
DBField string // DB中字段名称
Values []interface{} // values
ExactMatch bool // 是否精确查询
AllRegex bool // 标记是否进行全模匹配(默认为false,大部分需要左模匹配命中索引)只在模糊查询时有效
}
BaseInfoFilter 基础过滤器
func NewInFilter ¶ added in v0.15.3
func NewInFilter(field string, values []interface{}) *BaseInfoFilter
NewInFilter 创建IN查询过滤器
func NewLikeFilter ¶ added in v0.15.3
func NewLikeFilter(field string, values []interface{}, allRegex bool) *BaseInfoFilter
NewLikeFilter 创建LIKE查询过滤器
type DatabaseHandler ¶ added in v0.15.3
type DatabaseHandler struct {
// contains filtered or unexported fields
}
DatabaseHandler 实现 Handler 接口
func (*DatabaseHandler) AutoMigrate ¶ added in v0.15.3
func (d *DatabaseHandler) AutoMigrate(dst ...any) error
AutoMigrate implements Handler
func (*DatabaseHandler) Begin ¶ added in v0.15.3
func (d *DatabaseHandler) Begin(opts ...*sql.TxOptions) Handler
Begin implements Handler
func (*DatabaseHandler) Close ¶ added in v0.15.3
func (d *DatabaseHandler) Close() error
Close implements Handler
func (*DatabaseHandler) Commit ¶ added in v0.15.3
func (d *DatabaseHandler) Commit() error
Commit implements Handler
func (*DatabaseHandler) DB ¶ added in v0.15.3
func (d *DatabaseHandler) DB() *gorm.DB
DB implements Handler
func (*DatabaseHandler) Query ¶ added in v0.15.3
func (d *DatabaseHandler) Query(param QueryParam) *gorm.DB
Query implements Handler
func (*DatabaseHandler) Rollback ¶ added in v0.15.3
func (d *DatabaseHandler) Rollback() error
Rollback implements Handler
type FindOptionCommon ¶ added in v0.15.3
type FindOptionCommon struct {
BusinessId int64 // 业务ID
ShopId int64 // 店铺ID
ExcludeBusiness bool // 排除业务ID条件
ExcludeShop bool // 排除店铺ID条件
ExcludeBusinessAndShop bool // 排除业务和店铺条件
IncludeBusinessIdZero bool // 包含业务ID为0的情况
GroupBy string // 分组字段
By string // 排序字段
Order string // 排序方向 ASC/DESC
DisableOrderBy bool // 禁用排序
Limit int // 限制数量
Offset int // 偏移量
TablePrefix string // 表前缀
}
FindOptionCommon 通用查询选项
func BuildListQueryOption ¶ added in v0.15.3
func BuildListQueryOption(option *FindOptionCommon) *FindOptionCommon
BuildListQueryOption 构建列表查询选项
type Handler ¶ added in v0.15.3
type Handler interface {
DB() *gorm.DB
Query(param QueryParam) *gorm.DB
Close() error
AutoMigrate(dst ...any) error
Begin(opts ...*sql.TxOptions) Handler
Commit() error
Rollback() error
}
Handler 定义数据库操作接口
func GetDefaultHandler ¶ added in v0.15.3
func GetDefaultHandler() Handler
GetDefaultHandler 获取默认的数据库处理器
type PageBean ¶
type PageBean struct {
/** 当前页 */
Page int `json:"page"`
/** 当前页的行数 */
PageSize int `json:"pageSize"`
/** 总记录数 */
Total int64 `json:"total"`
/** 每行的数据 */
Rows interface{} `json:"rows"`
}
PageBean 全局分页对象
type PageInfo ¶
type PageQueryParam ¶ added in v0.15.3
type PageQueryParam struct {
// contains filtered or unexported fields
}
PageQueryParam 分页查询参数
type QueryBuilder ¶ added in v0.15.3
type QueryBuilder struct {
// contains filtered or unexported fields
}
QueryBuilder 查询构建器
func NewQueryBuilder ¶ added in v0.15.3
func NewQueryBuilder() *QueryBuilder
NewQueryBuilder 创建查询构建器
func (*QueryBuilder) Build ¶ added in v0.15.3
func (qb *QueryBuilder) Build() QueryParam
Build 构建查询参数
func (*QueryBuilder) WhereFindInSet ¶ added in v0.15.3
func (qb *QueryBuilder) WhereFindInSet(field string, values []string) *QueryBuilder
WhereFindInSet 添加FIND_IN_SET条件
func (*QueryBuilder) WhereIn ¶ added in v0.15.3
func (qb *QueryBuilder) WhereIn(field string, values []interface{}) *QueryBuilder
WhereIn 添加IN条件
func (*QueryBuilder) WhereLike ¶ added in v0.15.3
func (qb *QueryBuilder) WhereLike(field string, values []interface{}, allRegex bool) *QueryBuilder
WhereLike 添加LIKE条件
func (*QueryBuilder) WhereTimeRange ¶ added in v0.15.3
func (qb *QueryBuilder) WhereTimeRange(field, startTime, endTime string) *QueryBuilder
WhereTimeRange 添加时间范围条件
func (*QueryBuilder) WithBusinessId ¶ added in v0.15.3
func (qb *QueryBuilder) WithBusinessId(businessId int64) *QueryBuilder
WithBusinessId 设置业务ID
func (*QueryBuilder) WithGroupBy ¶ added in v0.15.3
func (qb *QueryBuilder) WithGroupBy(groupBy string) *QueryBuilder
WithGroupBy 设置分组
func (*QueryBuilder) WithOption ¶ added in v0.15.3
func (qb *QueryBuilder) WithOption(option *FindOptionCommon) *QueryBuilder
WithOption 设置查询选项
func (*QueryBuilder) WithOrder ¶ added in v0.15.3
func (qb *QueryBuilder) WithOrder(field, order string) *QueryBuilder
WithOrder 设置排序
func (*QueryBuilder) WithPagination ¶ added in v0.15.3
func (qb *QueryBuilder) WithPagination(limit, offset int) *QueryBuilder
WithPagination 设置分页
func (*QueryBuilder) WithShopId ¶ added in v0.15.3
func (qb *QueryBuilder) WithShopId(shopId int64) *QueryBuilder
WithShopId 设置店铺ID
func (*QueryBuilder) WithTablePrefix ¶ added in v0.15.3
func (qb *QueryBuilder) WithTablePrefix(prefix string) *QueryBuilder
WithTablePrefix 设置表前缀
type QueryParam ¶ added in v0.15.3
QueryParam 定义查询参数接口
func NewPageQueryParam ¶ added in v0.15.3
func NewPageQueryParam(where string, args []interface{}, limit, offset int, orderBy string) QueryParam
NewPageQueryParam 创建分页查询参数
func NewSimpleQueryParam ¶ added in v0.15.3
func NewSimpleQueryParam(where string, args ...interface{}) QueryParam
NewSimpleQueryParam 创建简单查询参数
type SimpleQueryParam ¶ added in v0.15.3
type SimpleQueryParam struct {
// contains filtered or unexported fields
}
SimpleQueryParam 简单查询参数实现