sqlx

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 17, 2022 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotMatchDestination is an error that indicates not matching destination to scan.
	ErrNotMatchDestination = errors.New("not matching destination to scan")
	// ErrNotReadableValue is an error that indicates value is not addressable or interfaceable.
	ErrNotReadableValue = errors.New("value not addressable or interfaceable")
	// ErrNotSettable is an error that indicates the passed in variable is not settable.
	ErrNotSettable = errors.New("passed in variable is not settable")
	// ErrUnsupportedValueType is an error that indicates unsupported unmarshal type.
	ErrUnsupportedValueType = errors.New("unsupported unmarshal type")
)
View Source
var ErrNotFound = sql.ErrNoRows

ErrNotFound is an alias of sql.ErrNoRows

Functions

func SetSlowThreshold

func SetSlowThreshold(threshold time.Duration)

SetSlowThreshold sets the slow threshold.

Types

type BulkInserter

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

A BulkInserter is used to batch insert records. Postgresql is not supported yet, because of the sql is formated with symbol `$`. Oracle is not supported yet, because of the sql is formated with symbol `:`.

func NewBulkInserter

func NewBulkInserter(sqlConn SqlConn, stmt string) (*BulkInserter, error)

NewBulkInserter returns a BulkInserter.

func (*BulkInserter) Flush

func (bi *BulkInserter) Flush()

Flush flushes all the pending records.

func (*BulkInserter) Insert

func (bi *BulkInserter) Insert(args ...interface{}) error

Insert inserts given args.

func (*BulkInserter) SetResultHandler

func (bi *BulkInserter) SetResultHandler(handler ResultHandler)

SetResultHandler sets the given handler.

func (*BulkInserter) UpdateOrDelete

func (bi *BulkInserter) UpdateOrDelete(fn func())

UpdateOrDelete runs update or delete queries, which flushes pending records first.

func (*BulkInserter) UpdateStmt

func (bi *BulkInserter) UpdateStmt(stmt string) error

UpdateStmt updates the insert statement.

type ResultHandler

type ResultHandler func(sql.Result, error)

ResultHandler defines the method of result handlers.

type Session

type Session interface {
	Exec(query string, args ...interface{}) (sql.Result, error)
	ExecCtx(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
	Prepare(query string) (StmtSession, error)
	PrepareCtx(ctx context.Context, query string) (StmtSession, error)
	QueryRow(v interface{}, query string, args ...interface{}) error
	QueryRowCtx(ctx context.Context, v interface{}, query string, args ...interface{}) error
	QueryRowPartial(v interface{}, query string, args ...interface{}) error
	QueryRowPartialCtx(ctx context.Context, v interface{}, query string, args ...interface{}) error
	QueryRows(v interface{}, query string, args ...interface{}) error
	QueryRowsCtx(ctx context.Context, v interface{}, query string, args ...interface{}) error
	QueryRowsPartial(v interface{}, query string, args ...interface{}) error
	QueryRowsPartialCtx(ctx context.Context, v interface{}, query string, args ...interface{}) error
}

Session stands for raw connections or transaction sessions

func NewSessionFromTx

func NewSessionFromTx(tx *sql.Tx) Session

NewSessionFromTx returns a Session with the given sql.Tx. Use it with caution, it's provided for other ORM to interact with.

type SqlConn

type SqlConn interface {
	Session
	// RawDB is for other ORM to operate with, use it with caution.
	// Notice: don't close it.
	RawDB() (*sql.DB, error)
	Transact(fn func(Session) error) error
	TransactCtx(ctx context.Context, fn func(context.Context, Session) error) error
}

SqlConn only stands for raw connections, so Transact method can be called.

func NewMysql

func NewMysql(datasource string, opts ...SqlOption) SqlConn

NewMysql returns a mysql connection.

func NewSqlConn

func NewSqlConn(driverName, datasource string, opts ...SqlOption) SqlConn

NewSqlConn returns a SqlConn with given driver name and datasource.

func NewSqlConnFromDB

func NewSqlConnFromDB(db *sql.DB, opts ...SqlOption) SqlConn

NewSqlConnFromDB returns a SqlConn with the given sql.DB. Use it with caution, it's provided for other ORM to interact with.

type SqlOption

type SqlOption func(*commonSqlConn)

SqlOption defines the method to customize a sql connection.

type StmtSession

type StmtSession interface {
	Close() error
	Exec(args ...interface{}) (sql.Result, error)
	ExecCtx(ctx context.Context, args ...interface{}) (sql.Result, error)
	QueryRow(v interface{}, args ...interface{}) error
	QueryRowCtx(ctx context.Context, v interface{}, args ...interface{}) error
	QueryRowPartial(v interface{}, args ...interface{}) error
	QueryRowPartialCtx(ctx context.Context, v interface{}, args ...interface{}) error
	QueryRows(v interface{}, args ...interface{}) error
	QueryRowsCtx(ctx context.Context, v interface{}, args ...interface{}) error
	QueryRowsPartial(v interface{}, args ...interface{}) error
	QueryRowsPartialCtx(ctx context.Context, v interface{}, args ...interface{}) error
}

StmtSession interface represents a session that can be used to execute statements.

Jump to

Keyboard shortcuts

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