mysql

package
v0.5.17 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2024 License: MIT Imports: 11 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) []string

Types

type Builder

type Builder interface {
	CondBuilder
	InsertBuilder
}

type Cond added in v0.5.9

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

type CondBuilder added in v0.2.35

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

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 {
	*sql.DB
	// contains filtered or unexported fields
}

func Database added in v0.1.6

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

Database 通过名称获取数据库

func (*DB) Before added in v0.5.9

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

Before sql执行前hook

func (*DB) Exec added in v0.2.23

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

Exec 执行sql

func (*DB) GetAll added in v0.2.23

func (d *DB) GetAll(result any, query string, args ...any) (int, error)

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

func (*DB) GetRow added in v0.2.23

func (d *DB) GetRow(result any, query string, args ...any) (int, error)

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

func (*DB) Query added in v0.2.23

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

Query 查询sql并返回结果集

func (*DB) Table added in v0.2.23

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

Table 获取查询构建器

func (*DB) Transaction added in v0.2.23

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

Transaction 事务

type InsertBuilder added in v0.2.35

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

type Manager

type Manager struct {
	sync.Map
}

type Raw added in v0.2.14

type Raw string

type ReadBuilder added in v0.2.23

type ReadBuilder interface {
	MakeQueryString(fields []string) (string, []any, error)
	Count() (int64, error)
	Fetch(fields []string, result any) (int, error)
	FetchRow(fields []string, result any) (int, error)
	FetchOne(field string) (string, error)
	FetchWithPage(fields []string, page int64, pageSize int64) (*ResultData, error)
}

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 WriteBuilder added in v0.2.23

type WriteBuilder 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)
}

Jump to

Keyboard shortcuts

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