dbtool

package
v0.0.0-...-d05a697 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2025 License: MulanPSL-2.0 Imports: 7 Imported by: 0

README

dbtool

这里使用GORM框架,数据库支持MySQL等,包含了一些常用的工具,包括数据库连接、分页查询列表等。

支持数据库连接:

其他接口:

  • Transaction:GORM事务处理。
  • IsTransaction:判断是否是GORM事务句柄。
  • BatchReplace:批量替换多行数据。

复杂查询条件,包括原子级条件项和复合条件项,其中:

  • 原子级条件项:只有左值、右值、操作符,拼接成一个原子级查询语句。
  • 复合条件项:包括多个子项,子项可以是原子级条件项,也可以是复合条件项,用连接符连接,可以是and或or。

其中QuerySql接口可以获取生成的查询语句和条件项,Fields接口可以获取查询条件中的所有字段列表,用于判断是否有字段不符合后台要求。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BatchReplace

func BatchReplace[T any](
	db *gorm.DB,
	tableName string,
	fields []string,
	fValue func(T) []interface{},
	dataList []T,
	batchCount int,
) (err error)

根据主键,批量重置多条数据内容

func InOperationUint8

func InOperationUint8(
	fieldName string,
	values []uint8,
	isIn bool,
) string

由于xxx in/not in (?)时,如果值数组是uint8数组,则GORM会按照字符串处理

func IsTransaction

func IsTransaction(db *gorm.DB) error

判断是否是事务句柄

func ListByPage

func ListByPage(db *gorm.DB, params *ListByPageParams) *gorm.DB

分页查询

func Session

func Session(db *gorm.DB) *gorm.DB

生成新的DB句柄

func Transaction

func Transaction[T any](db *gorm.DB, f TransactionFunc[T]) (data T, err error)

GORM事务处理

Types

type ConditionItem

type ConditionItem struct {
	WhereSql  string
	WhereArgs []interface{}
}

查询的拼接结果

func ConnAnd

func ConnAnd(items ...*ConditionItem) *ConditionItem

AND连接符

func ConnOr

func ConnOr(items ...*ConditionItem) *ConditionItem

OR连接符

func FieldEnumIn

func FieldEnumIn[T constraints.Ordered](
	name string,
	value []T,
) *ConditionItem

枚举字段包含关系

func FieldEnumNotIn

func FieldEnumNotIn[T constraints.Ordered](
	name string,
	value []T,
) *ConditionItem

枚举字段不包含关系

func FieldOrderedEqual

func FieldOrderedEqual[T constraints.Ordered](
	name string,
	value T,
) *ConditionItem

可比较字段(等于),包含数字和字符串

func FieldOrderedLess

func FieldOrderedLess[T constraints.Ordered](
	name string,
	value T,
) *ConditionItem

可比较字段(小于),包含数字和字符串

func FieldOrderedLessEqual

func FieldOrderedLessEqual[T constraints.Ordered](
	name string,
	value T,
) *ConditionItem

可比较字段(小于等于),包含数字和字符串

func FieldOrderedMore

func FieldOrderedMore[T constraints.Ordered](
	name string,
	value T,
) *ConditionItem

可比较字段(大于),包含数字和字符串

func FieldOrderedMoreEqual

func FieldOrderedMoreEqual[T constraints.Ordered](
	name string,
	value T,
) *ConditionItem

可比较字段(大于等于),包含数字和字符串

func FieldOrderedWithZero

func FieldOrderedWithZero[T constraints.Ordered | bool](
	name string,
	value *T,
	operator string,
) *ConditionItem

可比较字段通用实现,支持0值,包含数字、字符串、布尔值

func FieldTextLike

func FieldTextLike(name string, value string) *ConditionItem

文本字段(模糊搜索)

type ListByPageParams

type ListByPageParams struct {
	PageNumber uint64            `json:"page_number"` // 从1开始的页码
	PageSize   uint64            `json:"page_size"`   // 大于1为有效的页大小
	Sort       map[string]string `json:"sort"`        // 排序信息(仅支持一个),[字段名:ascend/descend]
}

分页查询列表的公共参数

type TransactionFunc

type TransactionFunc[T any] func(*gorm.DB) (T, error)

事务实际操作函数

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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