db

package
v0.0.0-...-dd12405 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2024 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ModifyFunTemp = array.ToAny[[]string]
)

Functions

func CountQuery

func CountQuery(baseQuery string) string

CountQuery 将一个 SQL 查询语句转换为计数查询语句。 参数:

baseQuery - 原始的 SQL 查询语句。

返回:

转换后的计数查询语句。

func EsScript

func EsScript(lang string, script string) func(data map[string]any) *elastic.Script

EsScript 返回一个 Elasticsearch 脚本 参数:

  • lang: 脚本语言
  • script: 脚本内容
  • data: 脚本参数

返回:

  • *elastic.Script: Elasticsearch 脚本

func EsScriptID

func EsScriptID(id string) func(data map[string]any) *elastic.Script

EsScriptID 返回一个 Elasticsearch 脚本 参数:

  • id: 脚本 ID
  • data: 脚本参数

返回:

  • *elastic.Script: Elasticsearch 脚本

func EsSimple

func EsSimple(host ...string) func(User, Pwd string) (*elastic.Client, error)

EsSimple 返回一个简单的 Elasticsearch 客户端 参数:

  • host: Elasticsearch 地址 ( http://localhost:9200)
  • User: Elasticsearch 用户名
  • Pwd: Elasticsearch 密码

返回:

  • *elastic.Client: Elasticsearch 客户端

func GetFieldMapValues

func GetFieldMapValues[T any](obj any) map[string]T

GetFieldMapValues 获取结构体的字段

obj - 结构体

返回 key-value 字典

func GetFieldValues

func GetFieldValues[T any](obj any) []T

GetFieldValues 获取结构体的字段

obj - 结构体

返回 []T

func GetJsonTags

func GetJsonTags(obj any) []string

GetTags 获取结构体的 json 标签

obj - 结构体

返回 json 标签列表

func GetSqlTags

func GetSqlTags(obj any) []string

GetTags 获取结构体的 sql 标签

obj - 结构体

返回 sql 标签列表

func GetTags

func GetTags(obj any, tag string) []string

GetTags 获取结构体的 tag 标签

obj - 结构体 tag - tag 名称

返回 tag 标签列表

func NewCKLoc

func NewCKLoc(ck *CKinfo) (driver.Conn, error)

func ToT

func ToT[T any](data []ElasticBluk[T]) []T

ToT 将 ElasticBluk[T] 转换为 []T 参数:

  • data: ElasticBluk[T]

返回:

  • []T

func ToTOne

func ToTOne[T any](data ElasticBluk[T]) T

ToTOne 将 ElasticBluk 转换为 T

Types

type CK

type CK struct {
	DB
}

func NewCK

func NewCK(ck *CKinfo) *CK

func (*CK) Insert

func (m *CK) Insert(q query.SqlInsert) func(ch chan []any) error

type CKinfo

type CKinfo struct {
	HostPost []string
	Database string
	User     string
	Pwd      string
	Tls      *tls.Config
	Settings map[string]string
	Debug    bool
}

type DB

type DB struct {
	Con *sql.DB
}

MysqlDB 定义了一个与MySQL数据库交互的结构体。

func (*DB) Close

func (m *DB) Close()

Close 关闭MysqlDB实例的底层数据库连接。 当MysqlDB实例不再需要使用时,应调用此方法。

func (*DB) Insert

func (m *DB) Insert(q query.SqlInsert) func(ch chan []any) error

Insert 方法从一个通道接收数据,并批量插入到 MySQL 数据库中。 参数:

ch - 一个通道,用于接收待插入的数据。
stop - 一个信号通道,用于控制插入操作的停止。

返回:

一个函数,接受一个 SqlInsert 类型的参数,执行数据库插入操作。

func (*DB) QueryArr

func (m *DB) QueryArr(query *query.SQLBuilder) func() ([][]string, error)

QueryArr 方法执行一个 SQL 查询语句,并返回查询结果的所有列数据。 参数:

sql - *SQLBuilder 类型的结构体,用于构建 SQL 查询语句。

返回:

一个函数,无参数,返回查询结果的所有列数据和可能的错误。

func (*DB) QueryCount

func (m *DB) QueryCount(query *query.SQLBuilder) (int, error)

QueryCount 方法执行一个 SQL 查询语句,并返回查询结果的行数。 参数:

sql - *SQLBuilder 类型的结构体,用于构建 SQL 查询语句。

返回:

查询结果的行数和可能的错误。

func (*DB) QueryField

func (m *DB) QueryField(query *query.SQLBuilder) ([]string, error)

func (*DB) QueryIter

func (m *DB) QueryIter(query *query.SQLBuilder) func() (chan []string, chan error)

QueryIter 方法执行一个 SQL 查询语句,并通过一个通道逐行返回查询结果的所有列数据。 参数:

sql - *SQLBuilder 类型的结构体,用于构建 SQL 查询语句。

返回:

一个函数,返回一个通道,用于发送查询结果的每一行数据,以及可能的错误。

func (*DB) QueryOne

func (m *DB) QueryOne(query *query.SQLBuilder) func() ([]string, error)

QueryOne 方法执行一个 SQL 查询语句,并返回查询结果的第一列数据。 参数:

sql - *SQLBuilder 类型的结构体,用于构建 SQL 查询语句。

返回:

一个函数,无参数,返回查询结果的第一列数据和可能的错误。

func (*DB) QueryTwo

func (m *DB) QueryTwo(query *query.SQLBuilder) func() (map[string]string, error)

QueryTwo 方法执行一个 SQL 查询语句,并返回查询结果的两列数据作为键值对的映射。 参数:

sql - *SQLBuilder 类型的结构体,用于构建 SQL 查询语句。

返回:

一个函数,无参数,返回查询结果的两列数据作为键值对的映射和可能的错误。

func (*DB) QueryVector

func (m *DB) QueryVector(query *query.SQLBuilder) func() ([][]string, error)

QueryVector 方法执行一个 SQL 查询语句,并返回查询结果的每一列数据。 参数:

sql - *SQLBuilder 类型的结构体,用于构建 SQL 查询语句。

返回:

一个函数,无参数,返回查询结果的每一列数据和可能的错误。
查询结果的每一列数据是一个二维切片,其中每一行是一个一维切片,代表查询结果的一列数据。

type ElasticBluk

type ElasticBluk[U any] struct {
	Index          string
	OpType         string // Operation type: "index", "create", "update", "delete", "script"
	Id             string
	Routing        string
	Source         U
	DocAsUpsert    bool            // For update operations
	Script         *elastic.Script // For script-based operations
	ScriptAsUpsert bool
	ScriptUpsert   any
}

type ElasticSearchClient

type ElasticSearchClient[U any] struct {
	Client *elastic.Client
}

定义一个 ElasticSearchClient 的结构体

func NewElasticSearchClient

func NewElasticSearchClient[U any](client *elastic.Client) *ElasticSearchClient[U]

创建 ElasticSearchClient 实例的工厂函数

func (*ElasticSearchClient[U]) BulkInsert

func (es *ElasticSearchClient[U]) BulkInsert() func(ch chan ElasticBluk[U]) error

func (*ElasticSearchClient[U]) Indexs

func (es *ElasticSearchClient[U]) Indexs() chan string

func (*ElasticSearchClient[U]) QueryIter

func (es *ElasticSearchClient[U]) QueryIter(index string, q any) (chan ElasticBluk[U], chan error)

QueryIter 参数:

index: 索引名称
q: 查询条件 , 支持 string 和 *query.EsQuery, elastic.Query

返回:

chan ElasticBluk[U]: 查询结果通道
chan error: 错误通道

func (*ElasticSearchClient[U]) QueryIterShard

func (es *ElasticSearchClient[U]) QueryIterShard(index string, q any) (chan ElasticBluk[U], chan error)

QueryIterShard 查询分片数量并执行 Query 参数:

index: 索引名称 不能使用别名
q: 查询条件 , 支持 string 和 *query.EsQuery, elastic.Query

返回:

chan ElasticBluk[U]: 查询结果通道
chan error: 错误通道

type Http

type Http[T any] struct {
	// contains filtered or unexported fields
}

func NewHttp

func NewHttp[T any](url string) *Http[T]

func (*Http[T]) Get

func (h *Http[T]) Get(param url.Values) (*T, error)

func (*Http[T]) GetText

func (h *Http[T]) GetText(param url.Values) (string, error)

func (*Http[T]) Post

func (h *Http[T]) Post(param url.Values, body map[string]string) (*T, error)

type MysqlDB

type MysqlDB struct {
	DB
	// contains filtered or unexported fields
}

func NewMysqlDB

func NewMysqlDB(dsn string) *MysqlDB

NewMysqlDB 创建一个新的MysqlDB实例,通过建立与MySQL数据库的连接。 参数:

con - 用于连接到MySQL数据库的连接字符串。

返回:

指向新创建的MysqlDB实例的指针。

func (*MysqlDB) QueryTableInfo

func (m *MysqlDB) QueryTableInfo(table string) ([]TableInfo, error)

type Redis

type Redis[T any] struct {
	// contains filtered or unexported fields
}

func NewRedisClient

func NewRedisClient[T any](host, pwd string, db int) *Redis[T]

func (*Redis[T]) Clear

func (r *Redis[T]) Clear(t bool) *Redis[T]

func (*Redis[T]) Close

func (r *Redis[T]) Close() error

func (*Redis[T]) Context

func (r *Redis[T]) Context(ctx context.Context) *Redis[T]

func (*Redis[T]) LLen

func (r *Redis[T]) LLen(key string) (int64, error)

func (*Redis[T]) PopList

func (r *Redis[T]) PopList(key string, num int) (chan T, chan error)

func (*Redis[T]) PushList

func (r *Redis[T]) PushList(key string, data chan T) error

type TableInfo

type TableInfo struct {
	Field   string
	Type    string
	Null    string
	Key     string
	Default string
	Extra   string
	Comment string
}

Jump to

Keyboard shortcuts

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