userDb

package
v2.3.1 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AutoCreateTableWithColumn

func AutoCreateTableWithColumn(db *gorm.DB, tb any, errmsg string)

AutoCreateTableWithColumn 根据表字段判断是否有数据缺失 一次性拿到数据库的字段结构以及索引结构 根据结构体信息,生成本地模型的字段结构和索引结构 首先比对数据库与本地索引结构,将多余的索引删除调 比对字段信息变化,如果有,就进行alter操作 最后再次比对数据库与本地模型的索引结构,将缺失的索引补充上。

func AutoCreateTableWithStruct

func AutoCreateTableWithStruct(db *gorm.DB, tb any, errmsg string)

AutoCreateTableWithStruct 根据结构体判断是否需要创建表

func AutoMigrate

func AutoMigrate(db *gorm.DB, c tablename.TableName, model any)

AutoMigrate 根据结构体自动创建表

func AutoSetSort

func AutoSetSort(r *http.Request, order string, fieldInfoInReq bool, alias ...string) func(db *gorm.DB) *gorm.DB

func ClearSequenceFieldDefaultValue

func ClearSequenceFieldDefaultValue(tx *gorm.DB, tableName string, seqFields []string) error

ClearSequenceFieldDefaultValue 清除自增序列字段的默认值

func Create

func Create[T Model](tx *gorm.DB, src T) error

Create 通用创建函数(使用泛型)

func CreateIfNotExist

func CreateIfNotExist[T Model](tx *gorm.DB, src T, c Curd) error

func DropSequence

func DropSequence(tx *gorm.DB, tableName string, seqFields []string) error

DropSequence 删除postgreSQL数据库中指定表的序列。

func FilterSoftDelete

func FilterSoftDelete(tableName ...string) func(db *gorm.DB) *gorm.DB

FilterSoftDelete 软删除过滤器 筛选未处于删除状态的数据

func FilterSoftDeleted

func FilterSoftDeleted(tableName ...string) func(db *gorm.DB) *gorm.DB

FilterSoftDeleted 软删除过滤器 筛选已经处于删除状态的数据

func FilterWhereByDbModel

func FilterWhereByDbModel(alias string, enableDefault bool, r *http.Request, likes ...map[string]string) func(db *gorm.DB) *gorm.DB

FilterWhereByDbModel 通过DB 实例设置的model 自动映射查询字段 这里是通过 栈的模式,避免函数递归调用

func FilterWhereData

func FilterWhereData(data any, tableName ...string) func(db *gorm.DB) *gorm.DB

func FilterWhereString

func FilterWhereString(r *http.Request, query string, field string, like bool) func(db *gorm.DB) *gorm.DB

FilterWhereString 过滤string 条件

func FilterWhereStruct

func FilterWhereStruct(s any, alias string, enableDefault bool, r *http.Request, likes ...map[string]string) func(db *gorm.DB) *gorm.DB

FilterWhereStruct 通过结构体 自动映射查询字段 Deprecated: 在FilterWhereByDbModel出来后,尽量通过这个函数来实现通过结构体 自动处理query 参数 转换到 sql where里面

func FindOne

func FindOne[T any](tx *gorm.DB, opts Curd) (T, error)

FindOne 查询某个对象

func FindOnePtr

func FindOnePtr[T any](tx *gorm.DB, opts Curd) (T, error)

FindOnePtr 查询某个对象

func FindTableWithPrefix

func FindTableWithPrefix(tx *gorm.DB, prefix string) ([]string, error)

func GetRawSql

func GetRawSql(f func(dTx *gorm.DB) *gorm.DB, dialector gorm.Dialector) (string, []any)

GetRawSql 生成sql的通用函数 pg postgres.Open("") mysql mysql.Open("")

func GetRawSqlByDb

func GetRawSqlByDb(f func(dTx *gorm.DB) *gorm.DB, db *gorm.DB) (string, []any)

GetRawSqlByDb 生成sql的通用函数,db为数据库连接

func IsTiDB

func IsTiDB(tx *gorm.DB) bool

IsTiDB 判断是否是TiDB数据库

func Paginate

func Paginate(r *http.Request, pageField, pageSizeField string, pageSize int) func(db *gorm.DB) *gorm.DB

Paginate 分页通用部分

func Query

func Query[T any](tx *gorm.DB, opts Curd) (res []T, err error)

Query 查询多个对象

func QueryDateTimeRange

func QueryDateTimeRange(r *http.Request, filed ...string) func(db *gorm.DB) *gorm.DB

QueryDateTimeRange 时间区间查询

func RenameConstraint

func RenameConstraint(tx *gorm.DB, tableName string, oldName, newName string) error

func ResetSequence

func ResetSequence(tx *gorm.DB, tableName string, seqFields []string) error

ResetSequence 重置postgreSQL数据库中指定表的序列值。

func Truncate

func Truncate(tx *gorm.DB, tableName string) error

func UnionAllScope

func UnionAllScope(queries ...*gorm.DB) func(db *gorm.DB) *gorm.DB

UnionAllScope 可复用的 UNION ALL 查询 Scope

func Update

func Update[T Model](tx *gorm.DB, src T, c Curd) error

Update 通用更新函数,使用泛型

func UpdateSeq

func UpdateSeq(utx *gorm.DB, tableName string)

UpdateSeq 更新postgreSQL数据库中指定表的序列值。 该函数用于确保序列值在插入新记录时不会产生间隙,通常在删除记录或导入数据后调用。 参数: tableName - 表名,序列所属的表。 field - 序列字段名,需要重置的序列对应的字段名

func UpdateWithoutValid

func UpdateWithoutValid[T any](tx *gorm.DB, opt Curd) (err error)

UpdateWithoutValid 通过更新状态字段,实现通用软删除

Types

type Curd

type Curd struct {
	Table         string
	Alias         string
	Select        QueryOpt
	Where         QueryOpt
	Preload       []QueryOpt
	Omit          []string
	Pk            string                    // 主键字段 id row_Id
	MustField     map[string]*regexp.Regexp // 必填字段,正则校验
	ValidExist    bool                      // 存在校验,true 需要校验目标是否存在,false 忽略校验
	Update        []any                     // 更新
	Updates       any                       // 更新
	EnableDefault bool
	Joins         []QueryOpt
}

Curd 通用curd函数,配置结构

type Model

type Model interface {
	Valid(tx *gorm.DB) error // 验证
}

type QueryOpt

type QueryOpt struct {
	Query string
	Args  []any
}

Directories

Path Synopsis
connect

Jump to

Keyboard shortcuts

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