transactor

package
v0.0.0-...-fee7787 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2021 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithCtxTransaction

func WithCtxTransaction(ctx context.Context, opt *sql.TxOptions, db *sqlx.DB, fn TxFunc) (err error)

WithCtxTransaction creates a new transaction with ctx and handles rollback/commit based on the error object returned by the `txFunc`

func WithTransaction

func WithTransaction(db *sqlx.DB, txFunc TxFunc) (err error)

WithTransaction создает новую транзакцию, выполняет функцию `TxFunc`, если она выполнена с ошибками, то выполняется откат транзакции (rollback), иначе фиксируется транзакция (commit)

func WithTransactionMany

func WithTransactionMany(db *sqlx.DB, funcs ...TxFunc) error

WithTransactionMany запустить несколько функций в транзакции

Types

type Transaction

type Transaction interface {
	Exec(query string, args ...interface{}) (sql.Result, error)
	Prepare(query string) (*sql.Stmt, error)
	Query(query string, args ...interface{}) (*sql.Rows, error)
	QueryRow(query string, args ...interface{}) *sql.Row
	QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row
}

Transaction интерфейс моделирующий интерфейс стандартной транзакции в `database/sql`.

Позволяет скрыть от функции `TxFunc` методы commit и rollback (они вызываются функцией `WithTransaction`, чтобы они не были вызваны случайно, потому эти методы сюда не включены.

type TransactionX

type TransactionX interface {
	Transaction
	Rebind(query string) string
	BindNamed(query string, arg interface{}) (string, []interface{}, error)
	NamedQuery(query string, arg interface{}) (*sqlx.Rows, error)
	NamedExec(query string, arg interface{}) (sql.Result, error)
	Select(dest interface{}, query string, args ...interface{}) error
	Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
	QueryRowx(query string, args ...interface{}) *sqlx.Row
	Get(dest interface{}, query string, args ...interface{}) error
	MustExec(query string, args ...interface{}) sql.Result
	Preparex(query string) (*sqlx.Stmt, error)
	Stmtx(stmt interface{}) *sqlx.Stmt
	NamedStmt(stmt *sqlx.NamedStmt) *sqlx.NamedStmt
	PrepareNamed(query string) (*sqlx.NamedStmt, error)
}

TransactionX интерфейс моделирующий методы транзакции sqlx, но без Commit и Rollback, чтобы внутри `TxFunc` нельзя было вызвать их, т.к. работой транзакии управляет функция `WithTransaction`

type TxFunc

type TxFunc func(tx TransactionX) error

TxFunc будет вызвано с инициализированным объектом `Transaction` которые может быть использоват для исполнения выражений и запросов к БД.

Jump to

Keyboard shortcuts

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