database

package
v0.15.6 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2025 License: Apache-2.0 Imports: 22 Imported by: 0

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

View Source
const (
	// SQL模式常量
	SQLLikePattern   = " LIKE ?"
	SQLEqualsPattern = " = ?"
)

数据库方言常量

Variables

This section is empty.

Functions

func CamelToCase

func CamelToCase(name string) string

func CheckPageRows

func CheckPageRows(currentStr, rowCountStr string) (current, rowCount int)

CheckPageRows 获取页数和行数

func Gorm

func Gorm() *gorm.DB

Gorm 初始化数据库并产生数据库全局变量

func GormMySQL

func GormMySQL() *gorm.DB

GormMySQL 初始化MySQL数据库

func GormPostgreSQL

func GormPostgreSQL() *gorm.DB

GormPostgreSQL 初始化PostgreSQL数据库

func GormSQLite

func GormSQLite() *gorm.DB

GormSQLite 连接SQLite数据库

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 添加时间范围查询

func (*AdvancedQueryParam) Where added in v0.15.3

func (a *AdvancedQueryParam) Where(db *gorm.DB) *gorm.DB

Where 实现 QueryParam 接口

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 Buffer

type Buffer struct {
	*bytes.Buffer
}

Buffer 内嵌bytes.Buffer,支持连写

func NewBuffer

func NewBuffer() *Buffer

func (*Buffer) Append

func (b *Buffer) Append(i interface{}) *Buffer

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 获取默认的数据库处理器

func NewHandler added in v0.15.3

func NewHandler(db *gorm.DB) Handler

NewHandler 创建新的数据库处理器

type PageBean

type PageBean struct {

	/** 当前页  */
	Page int `json:"page"`

	/** 当前页的行数 */
	PageSize int `json:"pageSize"`

	/** 总记录数 */
	Total int64 `json:"total"`

	/** 每行的数据 */
	Rows interface{} `json:"rows"`
}

PageBean 全局分页对象

func FindPage

func FindPage(v interface{}, rows interface{}, pageInfo *PageInfo) (pageBean *PageBean, err error)

FindPage 分页查询 v-空对象指针

type PageInfo

type PageInfo struct {

	/** 当前页 */
	Current int

	/** 每页显示的最大行数 */
	RowCount int

	/** 表名 仅限于指定表名去查询 */
	TableName string

	/** 查询 and 条件参数 */
	AndParams map[string]interface{}

	/** 查询 or 条件参数 */
	OrParams map[string]interface{}

	/** 排序 */
	OrderStr string
}

func PageParam

func PageParam(c *gin.Context) *PageInfo

PageParam 获取url查询参数

type PageQueryParam added in v0.15.3

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

PageQueryParam 分页查询参数

func (*PageQueryParam) Where added in v0.15.3

func (q *PageQueryParam) Where(db *gorm.DB) *gorm.DB

Where 实现 QueryParam 接口

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

type QueryParam interface {
	Where(db *gorm.DB) *gorm.DB
}

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 简单查询参数实现

func (*SimpleQueryParam) Where added in v0.15.3

func (q *SimpleQueryParam) Where(db *gorm.DB) *gorm.DB

Where 实现 QueryParam 接口

Jump to

Keyboard shortcuts

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