mysql

package
v0.2.26 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2022 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("条件不能为空")
	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 interface{}) ([]interface{}, bool)

CreateAnyTypeSlice interface{}转为 []interface{}

func Init added in v0.1.6

func Init(conf []Config) error

Init 初始化数据库

Types

type Builder

type Builder interface {
	Where(cond ...interface{}) Builder
	WhereMap(cond map[string]interface{}) Builder
	WhereRaw(cond string, args ...interface{}) Builder
	WhereIn(k string, in []interface{}) Builder
	WhereNotIn(k string, in []interface{}) Builder
	ClearCond() Builder
	GroupBy(k string, ks ...string) ReadBuilder
	OrderBy(k string, direct string) ReadBuilder
	Offset(offset int64) ReadBuilder
	Limit(limit int64) Builder
	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 ...interface{}) (sql.Result, error)

Exec 执行sql

func (*DB) GetAll added in v0.2.23

func (d *DB) GetAll(result interface{}, query string, args ...interface{}) (int, error)

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

func (*DB) GetRow added in v0.2.23

func (d *DB) GetRow(result interface{}, query string, args ...interface{}) (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 ...interface{}) (*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 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 []interface{}) (string, []interface{}, error)
	Count() (int64, error)
	Fetch(fields []interface{}, result interface{}) (int, error)
	FetchRow(fields []interface{}, result interface{}) (int, error)
	FetchOne(field string) (string, error)
	FetchWithPage(fields []interface{}, page int64, pageSize int64) (*ResultData, error)
}

type ResultData

type ResultData struct {
	List      []map[string]interface{} `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]interface{}

ToMap 分页结果集转化为map

type WriteBuilder added in v0.2.23

type WriteBuilder interface {
	Update(set map[string]interface{}, limit ...int) (int64, error)
	UpdateRaw(set string, limit ...int) (int64, error)
	Increment(column string, amount int64, set ...map[string]interface{}) (int64, error)
	Decrement(column string, amount int64, set ...map[string]interface{}) (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