db

package module
v0.1.49 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2024 License: MIT Imports: 23 Imported by: 12

README

DB library

Documentation

Overview

Работа с базами данных

Работа с базами данных

Index

Constants

View Source
const (
	TagDB    = "db"
	TagDBAlt = "dbAlt"

	SubstTable         = "TABLE"
	SubstNames         = "NAMES"
	SubstNamesPreComma = "NAMES_PRE_COMMA"
	SubstVals          = "VALS"
	SubstValsPreComma  = "VALS_PRE_COMMA"
	SubstPairs         = "PAIRS"
	SubstPairsPreComma = "PAIRS_PRE_COMMA"
	SubstJbFields      = "JB"
	SubstExtra         = "EXTRA"
	SubstExtraFrom     = "EXTRA_FROM"
	SubstExtraFullFrom = "EXTRA_FULL_FROM"
	SubstBefore        = "BEFORE"
	SubstAfter         = "AFTER"

	PatternNames         = "@" + SubstNames + "@"
	PatternNamesPreComma = "@" + SubstNamesPreComma + "@"
	PatternVals          = "@" + SubstVals + "@"
	PatternValsPreComma  = "@" + SubstValsPreComma + "@"
	PatternPairs         = "@" + SubstPairs + "@"
	PatternPairsPreComma = "@" + SubstPairsPreComma + "@"
	PatternExtra         = "@" + SubstExtra + "@"
	PatternExtraFrom     = "@" + SubstExtraFrom + "@"
	PatternExtraFullFrom = "@" + SubstExtraFullFrom + "@"
)

Variables

View Source
var (
	Log = log.NewFacility("db") // Log facility

)

Functions

func AddCleanupPatterns added in v0.1.49

func AddCleanupPatterns(p misc.StringMap)

func Disable added in v0.1.30

func Disable()

func Disabled added in v0.1.30

func Disabled() bool

func EnableAltTags added in v0.1.38

func EnableAltTags()

func EnableMock added in v0.1.16

func EnableMock()

func GetConn

func GetConn(dbName string) (conn *sqlx.DB, err error)

func GetQuery

func GetQuery(dbName string, queryName string) (q string, err error)

func IsAltTagsEnabled added in v0.1.38

func IsAltTagsEnabled() bool

func IsMockEnabled added in v0.1.16

func IsMockEnabled() bool

func Query

func Query(dbName string, dest any, queryName string, fields []string, vars []any) (err error)

func QueryWithMock added in v0.1.16

func QueryWithMock(mock MockCallback, dbName string, dest any, queryName string, fields []string, vars []any) (err error)

func SetMockCallback added in v0.1.16

func SetMockCallback(f MockCallback)

func SetStatPeriod

func SetStatPeriod(newPeriod time.Duration) (oldPeriod time.Duration)

func Tag added in v0.1.38

func Tag() string

Types

type Bulk added in v0.1.13

type Bulk [][]any

type Config

type Config map[string]*DB

Список используемых баз данных. Ключ - имя соединения

func (*Config) Check

func (x *Config) Check(cfg any) (err error)

Проверка валидности Config

func (Config) ConnectAll

func (c Config) ConnectAll() (err error)

type DB

type DB struct {
	Name           string         `toml:"-"`
	Active         bool           `toml:"active"`
	Driver         string         `toml:"driver"`
	DSN            string         `toml:"dsn"`
	UseQueriesFrom string         `toml:"use-queries-from"` // Use queries from another
	Queries        misc.StringMap `toml:"queries"`          // SQL запросы для этой базы, ключ - имя запроса
	// contains filtered or unexported fields
}

Описание базы

func GetDB

func GetDB(dbName string) (db *DB, err error)

func (*DB) Check

func (x *DB) Check(cfg any) (err error)

Проверка валидности DB

func (*DB) Connect

func (db *DB) Connect() (doRetry bool, err error)

func (*DB) Exec

func (db *DB) Exec(queryName string, vars []any) (result *Result, err error)

func (*DB) ExecEx

func (db *DB) ExecEx(dest any, queryName string, tp PatternType, firstDataFieldIdx int, fields []string, vars []any) (result *Result, err error)

func (*DB) ExecExWithMock added in v0.1.16

func (db *DB) ExecExWithMock(mock MockCallback, dest any, queryName string, tp PatternType, firstDataFieldIdx int, fields []string, vars []any) (result *Result, err error)

func (*DB) GetQuery

func (db *DB) GetQuery(queryName string) (q string, err error)

func (*DB) Query

func (db *DB) Query(dest any, queryName string, fields []string, vars []any) (err error)

func (*DB) QueryWithMock added in v0.1.16

func (db *DB) QueryWithMock(mock MockCallback, dest any, queryName string, fields []string, vars []any) (err error)

type Duration

type Duration config.Duration

func (Duration) D added in v0.1.28

func (v Duration) D() time.Duration

func (Duration) MarshalJSON

func (v Duration) MarshalJSON() ([]byte, error)

func (*Duration) Scan

func (v *Duration) Scan(value any) error

func (*Duration) UnmarshalJSON

func (v *Duration) UnmarshalJSON(s []byte) error

func (Duration) Value

func (v Duration) Value() (driver.Value, error)

type Error added in v0.1.39

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

func NewError added in v0.1.39

func NewError(parentError error, msg string, params ...any) (e *Error)

func (*Error) Error added in v0.1.39

func (e *Error) Error() string

func (*Error) Parent added in v0.1.39

func (e *Error) Parent() error

func (*Error) String added in v0.1.39

func (e *Error) String() string

type FieldInfo added in v0.1.19

type FieldInfo struct {
	Parent      *FieldInfo
	Type        reflect.Type // reflect.TypeOf("")
	Container   string       // "config"
	FieldName   string       // "Name"
	JsonName    string       // "name"
	DbName      string       // "x.name"
	CleanDbName string       // "name"
	DbSelect    string       // "COALESCE(x.name, ”) AS \"x.name\""
	JbName      string       // "name"
	JbType      string       // "varchar"
	DefVal      any          // 12345
	Tags        misc.StringMap
	Skipped     bool
}

type FieldsInfoMap added in v0.1.33

type FieldsInfoMap map[string]*FieldInfo

func (FieldsInfoMap) Field2Name added in v0.1.36

func (fields FieldsInfoMap) Field2Name(fieldName string) (name string, err error)

type FieldsList

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

func MakeFieldsList added in v0.1.3

func MakeFieldsList(o any) (fields *FieldsList, err error)

func (*FieldsList) AllDbNames added in v0.1.19

func (fields *FieldsList) AllDbNames() []string

func (*FieldsList) AllDbSelect added in v0.1.19

func (fields *FieldsList) AllDbSelect() []string

func (*FieldsList) ByCleanDbName added in v0.1.33

func (fields *FieldsList) ByCleanDbName() FieldsInfoMap

func (*FieldsList) ByDbName added in v0.1.28

func (fields *FieldsList) ByDbName() FieldsInfoMap

func (*FieldsList) ByJsonName added in v0.1.19

func (fields *FieldsList) ByJsonName() FieldsInfoMap

func (*FieldsList) ByName added in v0.1.28

func (fields *FieldsList) ByName() FieldsInfoMap

func (*FieldsList) JbFieldsStr added in v0.1.19

func (fields *FieldsList) JbFieldsStr() string

func (*FieldsList) Prepare added in v0.1.13

func (fields *FieldsList) Prepare(data []misc.InterfaceMap) (jbPairs JbPairs, names []string, rows Bulk)

jbPairs - шаблоны пар jb (имя, поставляемая переменная) с индексом переменной (среди jb полей) и родительским объектом names - имена выбираемых обычных полей rows - строки, с данными, сначала в соответствии с names, потом jb

type JbPair added in v0.1.13

type JbPair struct {
	Idx       int
	Format    string
	FieldInfo *FieldInfo
}

type JbPairs added in v0.1.13

type JbPairs []*JbPair

func (JbPairs) Len added in v0.1.19

func (d JbPairs) Len() int

func (JbPairs) Less added in v0.1.19

func (d JbPairs) Less(i, j int) bool

func (JbPairs) String added in v0.1.19

func (jbp JbPairs) String(tp PatternType) (s string)

func (JbPairs) Swap added in v0.1.19

func (d JbPairs) Swap(i, j int)

type MockCallback added in v0.1.16

type MockCallback func(db *DB, mock sqlmock.Sqlmock, q string, v []any) (err error)

type NullBool

type NullBool sql.NullBool

func (NullBool) MarshalJSON

func (v NullBool) MarshalJSON() ([]byte, error)

func (*NullBool) Scan

func (v *NullBool) Scan(value any) error

func (*NullBool) UnmarshalJSON

func (v *NullBool) UnmarshalJSON(s []byte) error

func (NullBool) Value

func (v NullBool) Value() (driver.Value, error)

type NullFloat64

type NullFloat64 sql.NullFloat64

func (NullFloat64) MarshalJSON

func (v NullFloat64) MarshalJSON() ([]byte, error)

func (*NullFloat64) Scan

func (v *NullFloat64) Scan(value any) error

func (*NullFloat64) UnmarshalJSON

func (v *NullFloat64) UnmarshalJSON(s []byte) error

func (NullFloat64) Value

func (v NullFloat64) Value() (driver.Value, error)

type NullInt64

type NullInt64 sql.NullInt64

func (NullInt64) MarshalJSON

func (v NullInt64) MarshalJSON() ([]byte, error)

func (*NullInt64) Scan

func (v *NullInt64) Scan(value any) error

func (*NullInt64) UnmarshalJSON

func (v *NullInt64) UnmarshalJSON(s []byte) error

func (NullInt64) Value

func (v NullInt64) Value() (driver.Value, error)

type NullString

type NullString sql.NullString

func (NullString) MarshalJSON

func (v NullString) MarshalJSON() ([]byte, error)

func (*NullString) Scan

func (v *NullString) Scan(value any) error

func (*NullString) UnmarshalJSON

func (v *NullString) UnmarshalJSON(s []byte) error

func (NullString) Value

func (v NullString) Value() (driver.Value, error)

type NullTime

type NullTime sql.NullTime

func (NullTime) MarshalJSON

func (v NullTime) MarshalJSON() ([]byte, error)

func (*NullTime) Scan

func (v *NullTime) Scan(value any) error

func (*NullTime) UnmarshalJSON

func (v *NullTime) UnmarshalJSON(s []byte) error

func (NullTime) Value

func (v NullTime) Value() (driver.Value, error)

type NullUint64

type NullUint64 struct {
	Valid  bool
	Uint64 uint64
}

func (NullUint64) MarshalJSON

func (v NullUint64) MarshalJSON() ([]byte, error)

func (*NullUint64) Scan

func (v *NullUint64) Scan(value any) error

func (*NullUint64) UnmarshalJSON

func (v *NullUint64) UnmarshalJSON(s []byte) error

func (NullUint64) Value

func (v NullUint64) Value() (driver.Value, error)

type PatternType

type PatternType int
const (
	PatternTypeNone PatternType = iota
	PatternTypeSelect
	PatternTypeInsert
	PatternTypeUpdate
)

type Result added in v0.1.13

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

func Exec

func Exec(dbName string, queryName string, vars []any) (result *Result, err error)

func ExecEx

func ExecEx(dbName string, dest any, queryName string, tp PatternType, firstDataFieldIdx int, fields []string, vars []any) (result *Result, err error)

func ExecExWithMock added in v0.1.16

func ExecExWithMock(mock MockCallback, dbName string, dest any, queryName string, tp PatternType, firstDataFieldIdx int, fields []string, vars []any) (result *Result, err error)

func (*Result) Add added in v0.1.41

func (r *Result) Add(sqlResult sql.Result, err error)

func (*Result) Errors added in v0.1.41

func (r *Result) Errors() []error

func (*Result) HasError added in v0.1.41

func (r *Result) HasError() bool

func (*Result) LastInsertId added in v0.1.13

func (r *Result) LastInsertId() (int64, error)

func (*Result) RowsAffected added in v0.1.13

func (r *Result) RowsAffected() (int64, error)

type Stat

type Stat struct {
	Stat map[string]*connStat `json:"stat,omitempty"`
	// contains filtered or unexported fields
}

func GetStat

func GetStat() *Stat

type SubstArg

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

func Subst

func Subst(name string, value any) *SubstArg

func (*SubstArg) Name

func (a *SubstArg) Name() string

func (*SubstArg) SetValue added in v0.1.23

func (a *SubstArg) SetValue(v any)

func (*SubstArg) String added in v0.1.16

func (a *SubstArg) String() string

func (*SubstArg) Value

func (a *SubstArg) Value() any

Jump to

Keyboard shortcuts

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