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 ¶
WithTransaction создает новую транзакцию, выполняет функцию `TxFunc`, если она выполнена с ошибками, то выполняется откат транзакции (rollback), иначе фиксируется транзакция (commit)
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` которые может быть использоват для исполнения выражений и запросов к БД.