xgorm

package
v0.3.28 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2024 License: BSD-3-Clause-Clear Imports: 6 Imported by: 0

Documentation

Overview

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

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DataColumnAs added in v0.3.12

func DataColumnAs(column any, alias, tables string) string

未知类型转义

func DataColumnAsFloatString added in v0.3.12

func DataColumnAsFloatString(col any) []string

将整数类型转换为字符串类型

col	待转换的变量数据

func DataColumnAsIntString added in v0.3.12

func DataColumnAsIntString(col any) []string

将整数类型转换为字符串类型

col	待转换的变量数据

func DataColumnAsList added in v0.3.12

func DataColumnAsList(column [][]string, alias []string, tables string) string

多维数组转SQL

func DataColumnAsString added in v0.3.12

func DataColumnAsString(column []string, alias, tables string) string

SQL语句进行别名解析,用于left join/where使用

column	待拼接的字符串,允许值类型为:[]number,[]string
alias	该字段别名
tables	使用gorm等工具时的AS别名,会追加() AS xxxx形式,空字符串则不追加

func SetDbMaxConnections added in v0.3.21

func SetDbMaxConnections(c int)

设置缓存中的最大连接量,到达该数量后会关闭一半打开最早的连接 触达该配置数量后会清理其中的2/3,因是定时执行的,可能会存在数量超出该配置值的情况 另外,为了避免使用To对原有连接的影响,此处将不清理To导入的数据库连接,即一旦To的设置了别名,将不会触发对应的清理操作 PS: 但是会被计算在内,导致整体清理后移,所以使用时请尽量避免该情况

c	设置的最大连接数量(为了避免设置1时的持续性清理,故1和0均为不限制)

Types

type XDB

type XDB struct {
	Baks *gorm.DB // 旧的数据库驱动,用于多Table拆分
	*gorm.DB
}

扩展结构体 使用Alias和Dns来区分不同的数据库连接,即相同的Alias连接相同

func To

func To(c *gorm.DB) *XDB

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

c	待转换的结构体
fun	附加选项

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) 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) Like added in v0.3.27

func (c *XDB) Like(fd []string, key string) *XDB

追加Like查询

fd	查询的字段【使用like进行匹配】
key	查询的字符串/数字等

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) List

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

搜索列表数据

offset	跳过条数
limit	查询条数,<0表示查询全部
count	int64格式的条数搜索【需要为指针】
dest	搜索的字段列表【需要为指针】

func (*XDB) Not

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

Where条件

query	查询条件
args	附加参数

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) PluckIntString added in v0.3.26

func (c *XDB) PluckIntString(key, val string) (map[int]string, error)

查询两个字段并返回成map数组

key	map下标字段
val	map值

func (*XDB) PluckStringInt added in v0.3.26

func (c *XDB) PluckStringInt(key, val string) (map[string]int, error)

查询两个字段并返回成map数组

key	map下标字段
val	map值

func (*XDB) Rollback

func (db *XDB) Rollback() *XDB

事务回退

func (*XDB) Select

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

设置查询字段

query	查询条件
args	附加参数

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) ValueFloat64 added in v0.3.27

func (c *XDB) ValueFloat64(field string) float64

获取float类型字段值

field	获取的字段值

func (*XDB) ValueInt64 added in v0.3.27

func (c *XDB) ValueInt64(field string) int64

获取int类型字段值

field	获取的字段值

func (*XDB) ValueJson added in v0.3.27

func (c *XDB) ValueJson(field string, jsons any) error

获取字段的JSON值,会解析到jsons变量中去

field	获取的字段值
jsons	待解析的值

func (*XDB) ValueString added in v0.3.27

func (c *XDB) ValueString(field string) string

获取字段的字符串值

field	获取的字段值

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) WhenLike added in v0.3.27

func (c *XDB) WhenLike(w bool, fd []string, key string) *XDB

when like搜索

w	是否执行此搜索条件
fd	查询的字段【使用like进行匹配】
key	查询的字符串/数字等

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