mysql

package
v0.5.7 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrEmptyCond 防止在update、delete操作时,漏掉条件造成的严重后果
	// 如果确实不需要条件,请将条件设置为 1=1
	ErrEmptyCond               = errors.New("条件不能为空")
	ErrEmptyInCond             = errors.New("in查询条件不能为空")
	ErrEmptyValue              = errors.New("值不能为空")
	ErrInvalidArguments        = errors.New("参数错误")
	ErrInvalidCondArguments    = errors.New("条件参数错误")
	ErrInvalidColumnsArguments = 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 初始化数据库

Types

type Builder

type Builder interface {
	CondBuilder
	InsertBuilder
}

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"`
	Prefix          string `json:"prefix" toml:"prefix"`
	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) Exec added in v0.2.23

func (d *DB) Exec(query 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) GetTablePrefix added in v0.2.23

func (d *DB) GetTablePrefix() string

GetTablePrefix 获取表前缀

func (*DB) Query added in v0.2.23

func (d *DB) Query(query 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) TableRaw added in v0.2.35

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

TableRaw 获取查询构建器

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 []any) (string, []any, error)
	Count() (int64, error)
	Fetch(fields []any, result any) (int, error)
	FetchRow(fields []any, result any) (int, error)
	FetchOne(field string) (string, error)
	FetchWithPage(fields []any, page int64, pageSize int64) (*ResultData, error)
}

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