db

package
v1.3.11 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2021 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LoggingFunc = func(msg string, err error) {
	if err != nil {
		io.OutputError(err, "", msg)
	} else {
		io.OutputInfo("", msg)
	}
}

LoggingFunc global variable func to add custom logging output

Functions

func NewDb

func NewDb(dsnConnString, sqlDriverName string) (*sqlx.DB, error)

NewDb creates db connection with multiple retries in case if mysql is not immediately available

func ValidateConn

func ValidateConn(conn *sqlx.DB, maxConnAttempts int) error

ValidateConn pings the opened connection and fails if conn details are wrong

Types

type DbGateway

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

DbGateway wrapper for sqlx with some useful additions

func BuildDbGateway

func BuildDbGateway(driverName, dsnConnString string, maxConnAttempts int) (*DbGateway, error)

func BuildMysqlDbGateway

func BuildMysqlDbGateway(dsnConnString string, maxConnAttempts int) (*DbGateway, error)

func NewDbGateway

func NewDbGateway(conn *sqlx.DB) *DbGateway

func (*DbGateway) Begin

func (dg *DbGateway) Begin() (*baseSql.Tx, error)

Begin transaction

func (*DbGateway) Destroy

func (dg *DbGateway) Destroy() error

Destroy closes connection, useful for garbage collection

func (*DbGateway) Exec

func (dg *DbGateway) Exec(query string, args ...interface{}) (baseSql.Result, error)

Exec executes a query, very useful for mutations like insert, delete, update, alter, drop, truncate etc.

func (*DbGateway) FindByQuery

func (dg *DbGateway) FindByQuery(target interface{}, sql string, args []interface{}) error

FindByQuery executes a select query, saving the result into target, args are packed into a slice

func (*DbGateway) FindByQueryFlex

func (dg *DbGateway) FindByQueryFlex(target interface{}, sql string, args ...interface{}) error

FindByQueryFlex the same as FindByQuery but arguments can be omitted

func (*DbGateway) FindOneStructById

func (dg *DbGateway) FindOneStructById(target interface{}, tableName string, id int64) (bool, error)

func (*DbGateway) QueryWithCallback

func (dg *DbGateway) QueryWithCallback(
	resultCallback func(row map[string]interface{}, errCallback error),
	sql string,
	args map[string]interface{},
) error

QueryWithCallback executes query and gives each row to callback func

func (*DbGateway) ScanScalarByQuery

func (dg *DbGateway) ScanScalarByQuery(target interface{}, sql string, args ...interface{}) (found bool, err error)

ScanScalarByQuery useful to get simple scalar results from db

func (*DbGateway) ScanStructByQuery

func (dg *DbGateway) ScanStructByQuery(target interface{}, q string, args ...interface{}) (bool, error)

ScanStructByQuery useful to get a single struct

func (*DbGateway) TruncateTable

func (dg *DbGateway) TruncateTable(tableName string) (baseSql.Result, error)

TruncateTable truncates table

type FakeConn

type FakeConn struct {
	FakeStmt *FakeStmt
	FakeFx   *FakeFx
	IsClosed bool
	Error    error
	// contains filtered or unexported fields
}

func (*FakeConn) Begin

func (fc *FakeConn) Begin() (driver.Tx, error)

func (*FakeConn) Close

func (fc *FakeConn) Close() error

func (*FakeConn) Prepare

func (fc *FakeConn) Prepare(query string) (driver.Stmt, error)

type FakeFx

type FakeFx struct {
	IsBegun    bool
	IsCommit   bool
	IsRollback bool
}

func (*FakeFx) Commit

func (fx *FakeFx) Commit() error

func (*FakeFx) Rollback

func (fx *FakeFx) Rollback() error

type FakeSqlDriver

type FakeSqlDriver struct {
	ConnStr         string
	ErrFuncProvider func() error
	Conn            *FakeConn
}

func NewFakeSqlDriver

func NewFakeSqlDriver() *FakeSqlDriver

func (*FakeSqlDriver) Open

func (fsq *FakeSqlDriver) Open(connStr string) (driver.Conn, error)

type FakeStmt

type FakeStmt struct {
	NumInputCount int
	RowsAffected  int64
	RowsSlice     *RowsData
	Args          []driver.Value
}

func (*FakeStmt) Close

func (fs *FakeStmt) Close() error

func (*FakeStmt) Exec

func (fs *FakeStmt) Exec(args []driver.Value) (driver.Result, error)

func (*FakeStmt) NumInput

func (fs *FakeStmt) NumInput() int

func (*FakeStmt) Query

func (fs *FakeStmt) Query(args []driver.Value) (driver.Rows, error)

type RowsData

type RowsData struct {
	Cols     []string
	CurRow   int
	Data     [][]interface{}
	IsClosed bool
}

func (*RowsData) Close

func (fr *RowsData) Close() error

func (*RowsData) Columns

func (fr *RowsData) Columns() []string

func (*RowsData) Next

func (fr *RowsData) Next(dest []driver.Value) error

Jump to

Keyboard shortcuts

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