xgorm

package
v0.3.10 Latest Latest
Warning

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

Go to latest
Published: May 11, 2024 License: BSD-3-Clause-Clear Imports: 5 Imported by: 0

Documentation

Overview

个人扩展到的一些GROM的常用方法

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type XDB

type XDB struct {
	*gorm.DB
	// contains filtered or unexported fields
}

扩展结构体

func To

func To(c *gorm.DB) *XDB

将gorm数据库连接转换为此处扩展的连接信息【条件会在原指针上进行添加,所以此处可以单独使用】

c	待转换的结构体

func (*XDB) Begin

func (db *XDB) Begin(opts ...*sql.TxOptions) *XDB

开启事务,代理gorm的Begin方法

opts	事务选项

func (*XDB) Between

func (db *XDB) Between(field string, start, end any) *XDB

Between 范围检索

field	待检索的条件
start	开始条件
end		结束条件

func (*XDB) Commit

func (db *XDB) Commit() *XDB

事务提交

func (*XDB) Count

func (db *XDB) Count() (int64, error)

查询数据条数

func (*XDB) Distinct

func (db *XDB) Distinct(args ...any) *XDB

检索某个列或一组列的唯一值。当您指定要查询的独特字段时,SQL 将返回这些字段的独特值,并按照指定的顺序进行检索。 等同于gorm的Distinct方法,此处仅为内部的一个封装

args	检索条件

func (*XDB) FieldMinMax

func (db *XDB) FieldMinMax(min_field, max_field string, min, max any, type_field uint8) *XDB

设置字段的范围信息

min_field	数据库中的最小ID/时间字段
max_field	数据库中的最大ID/时间字段
min			搜索的最小条件
max			搜索的最大条件
type_field	搜索模式,0-包含min和max 1-包含min,不包含max 2-包含max,不包含min 3-都不包含

func (*XDB) Group

func (db *XDB) Group(name string) *XDB

分组

name	分组字段

func (*XDB) Having

func (db *XDB) Having(query any, args ...any) *XDB

排重

query	排重条件
args	附加参数

func (*XDB) Joins

func (c *XDB) Joins(query string, args ...any) *XDB

join关联 等同于gorm的joins

query	关联表
args	关联参数

func (*XDB) Likes

func (c *XDB) Likes(fd []string, key any, op ...string) *XDB

追加Likes搜索条件

fd	查询的字段【使用like进行匹配】
key	查询的字符串/数字等,请手动追加前后的%或者其他的%规则
op	查询条件,默认为 "LIKE ?",可传入其他值,如:" = ?" / " > ? and  type = 1"......(字段在最前面,前后会追加括号,且仅第一个生效,所以写条件时需要注意位置)

func (*XDB) Limit

func (db *XDB) Limit(limit int) *XDB

查询条数

limit	查询条数

func (*XDB) List

func (c *XDB) List(count *int64, dest any) error

搜索列表数据

count	int64格式的条数搜索【需要为指针】
dest	搜索的字段列表【需要为指针】

func (*XDB) Not

func (db *XDB) Not(query interface{}, args ...interface{}) *XDB

Where条件

query	查询条件
args	附加参数

func (*XDB) Offset

func (db *XDB) Offset(offset int) *XDB

跳过条数

offset	跳过条数

func (*XDB) Omit

func (db *XDB) Omit(columns ...string) *XDB

设置忽略字段,和Select取反

columns	要忽略的字段

func (*XDB) Or

func (db *XDB) Or(query interface{}, args ...interface{}) *XDB

Where条件

query	查询条件
args	附加参数

func (*XDB) Order

func (db *XDB) Order(value any) *XDB

Order排序

value	排序条件

func (*XDB) Page

func (db *XDB) Page(offset, limit int) *XDB

分页数据

offset	跳过条数
limit	查询条数

func (*XDB) Rollback

func (db *XDB) Rollback() *XDB

事务回退

func (*XDB) Save

func (db *XDB) Save(value interface{}) error

设置保存信息

value	要保存的结构体信息

func (*XDB) Select

func (db *XDB) Select(query any, args ...any) *XDB

设置查询字段

query	查询条件
args	附加参数

func (*XDB) SetDbRows

func (db *XDB) SetDbRows(c int64) *XDB

设置影响行数,即若此行数不等于c时直接返回错误

c	设置预期影响行数

func (*XDB) SetRowsAffected

func (db *XDB) SetRowsAffected(c bool) *XDB

设置影响行数为空时返回错误

c	设置影响行数为0时是否返回错误信息

func (*XDB) Table

func (db *XDB) Table(name string, args ...any) *XDB

设置表格【等同于gorm的table】

func (*XDB) Transaction

func (db *XDB) Transaction(fc func(txs *XDB) error, opts ...*sql.TxOptions) error

函数式事务处理

func (*XDB) Update

func (db *XDB) Update(column string, value interface{}) error

设置保存信息

column	要修改的字段
value	修改的值

func (*XDB) When

func (c *XDB) When(when bool, query any, args ...any) *XDB

When搜索 此搜索条件和gorm的where等同,最前方多了一层If bool的判断

when	判断注入的When条件,只有此处为true时才会注入后方的where条件
query	查询条件
args	附加参数

func (*XDB) WhenBetween

func (db *XDB) WhenBetween(when bool, field string, start, end any) *XDB

When Between 范围检索

when	判断注入的When条件,只有此处为true时才会注入后方的where条件
field	待检索的条件
start	开始条件
end		结束条件

func (*XDB) Where

func (c *XDB) Where(query any, args ...any) *XDB

Where搜索 此搜索条件和gorm的where等同

query	查询条件
args	附加参数

Jump to

Keyboard shortcuts

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