mysql

package
v0.6.16 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrEmptyCond 防止在update、delete操作时,漏掉条件造成的严重后果
	// 如果确实不需要条件,请将条件设置为 1=1
	ErrEmptyCond            = errors.New("条件不能为空")
	ErrEmptyValue           = errors.New("值不能为空")
	ErrInvalidArguments     = errors.New("参数错误")
	ErrInvalidCondArguments = errors.New("条件参数错误")
	ErrInvalidResultPtr     = errors.New("无效的结果指针")
	ErrEmptyTableName       = errors.New("没有指定表名称")
	ErrDatabaseNotExists    = errors.New("指定数据库不存在,或未初始化")
)

Functions

func CloseAll added in v0.2.23

func CloseAll() error

CloseAll 关闭数据库连接

func CreateAnyTypeSlice added in v0.1.6

func CreateAnyTypeSlice(slice any) ([]any, bool)

CreateAnyTypeSlice interface{}转为 []interface{}

func Init added in v0.1.6

func Init(conf []Config) error

Init 初始化数据库

func StructFields added in v0.5.15

func StructFields(result any, except ...string) []string

Types

type Builder

type Builder interface {
	BeforeHook(h func(string, ...any) func()) Builder
	WhereBuilder
	CBuilder
}

type CBuilder added in v0.6.0

type CBuilder interface {
	Insert(set map[string]any) (int64, error)
}

CBuilder create builder (C)

type Cond added in v0.5.9

type Cond interface {
	String() string
	Args() []any
}

type Config added in v0.2.23

type Config struct {
	Name            string `json:"name" toml:"name"`
	User            string `json:"user" toml:"user"`
	Passwd          string `json:"passwd" toml:"passwd"`
	Host            string `json:"host" toml:"host"`
	Port            int    `json:"port" toml:"port"`
	DbName          string `json:"dbname" toml:"dbname"`
	Charset         string `json:"charset" toml:"charset"`
	MaxOpenConns    int    `json:"max_open_conns" toml:"max_open_conns"`
	MaxIdleConns    int    `json:"max_idle_conns" toml:"max_idle_conns"`
	ConnMaxLifetime int    `json:"conn_max_lifetime" toml:"conn_max_lifetime"`
}

type DB added in v0.2.23

type DB struct{ Tx }

func Database added in v0.1.6

func Database(name string) (*DB, error)

Database 通过名称获取数据库

func (*DB) Transaction added in v0.2.23

func (d *DB) Transaction(fn func(tx *Tx) error) (err error)

Transaction 事务

type Fields added in v0.6.0

type Fields []string

func (Fields) String added in v0.6.0

func (f Fields) String() string

type Manager

type Manager struct {
	sync.Map
}

type RBuilder added in v0.6.0

type RBuilder interface {
	QueryString() (string, []any, error)
	Count() (int64, error)
	Find(result any) (int, error)
	First(result any) (int, error)
	One(field string) (string, error)
	FetchWithPage(page int64, pageSize int64) (*ResultData, error)
}

RBuilder read builder (R)

type Relate added in v0.5.9

type Relate string
const (
	AND Relate = "AND"
	OR  Relate = "OR"
)

func (Relate) String added in v0.5.9

func (r Relate) String() string

type ResultData

type ResultData struct {
	List      []map[string]any `json:"list"`
	Count     int64            `json:"count"`
	PageSize  int64            `json:"page_size"`
	Page      int64            `json:"page"`
	PageCount int64            `json:"page_count"`
	Start     int64            `json:"start"`
	Mark      int64            `json:"mark"`
}

ResultData 分页返回数据 - 返回结果定义

func Multi

func Multi(count int64, page int64, pageSize int64) ResultData

Multi 构造分页返回结果 count int64 总数 perpage int64 每页数量 page int64 当前页

func (*ResultData) ToMap

func (r *ResultData) ToMap() map[string]any

ToMap 分页结果集转化为map

type SqlError added in v0.5.10

type SqlError struct {
	// contains filtered or unexported fields
}

func (*SqlError) Error added in v0.5.10

func (err *SqlError) Error() string

func (*SqlError) Sql added in v0.5.16

func (err *SqlError) Sql() (string, []any)

func (*SqlError) Unwrap added in v0.5.16

func (err *SqlError) Unwrap() error

type Table added in v0.5.16

type Table string

func (Table) As added in v0.5.16

func (t Table) As(alias string) Table

func (Table) IsValid added in v0.5.16

func (t Table) IsValid() bool

func (Table) LeftJoin added in v0.5.16

func (t Table) LeftJoin(table Table, a, b string) Table

func (Table) String added in v0.5.16

func (t Table) String() string

type Tx added in v0.6.0

type Tx struct {
	// contains filtered or unexported fields
}

func (*Tx) Before added in v0.6.0

func (d *Tx) Before(h func(string, ...any) func()) *Tx

Before sql执行前hook

func (*Tx) Exec added in v0.6.0

func (d *Tx) Exec(sql string, args ...any) (sql.Result, error)

Exec 执行sql

func (*Tx) Find added in v0.6.0

func (d *Tx) Find(result any, query string, args ...any) (int, error)

Find 直接执行sql原生语句并返回多行

func (*Tx) First added in v0.6.0

func (d *Tx) First(result any, query string, args ...any) (int, error)

First 直接执行sql原生语句并返回1行

func (*Tx) Query added in v0.6.0

func (d *Tx) Query(sql string, args ...any) (*sql.Rows, error)

Query 查询sql并返回结果集

func (*Tx) Table added in v0.6.0

func (d *Tx) Table(table string) *builder

Table 获取查询构建器

type UDBuilder added in v0.6.0

type UDBuilder interface {
	Update(set map[string]any, limit ...int) (int64, error)
	UpdateRaw(set string, limit ...int) (int64, error)
	Increment(column string, amount int64, set ...map[string]any) (int64, error)
	Decrement(column string, amount int64, set ...map[string]any) (int64, error)
	Delete(limit ...int) (int64, error)
}

UDBuilder update or delete builder (UD)

type WhereBuilder added in v0.6.0

type WhereBuilder interface {
	Where(cond ...any) WhereBuilder
	WhereMap(cond map[string]any) WhereBuilder
	WhereRaw(cond string, args ...any) WhereBuilder
	WhereIn(k string, in []any) WhereBuilder
	WhereNotIn(k string, in []any) WhereBuilder
	ClearCond() WhereBuilder
	GroupBy(ks ...string) WhereBuilder
	OrderBy(k string, direct string) WhereBuilder
	Offset(offset int64) WhereBuilder
	Limit(limit int64) WhereBuilder
	Select(fields ...string) WhereBuilder
	RBuilder
	UDBuilder
}

Jump to

Keyboard shortcuts

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