db

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2025 License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Index

Constants

View Source
const (
	ErrInvalidParameters = utils.Error("invalid parameter count or parameter is nil")
)

Variables

This section is empty.

Functions

func Count added in v0.2.9

func Count(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset) (int64, error)

func Del added in v0.2.9

func DeleteByKey added in v0.2.9

func DeleteByKey(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset, keyField string, value any) error

func DeleteWhere added in v0.2.9

func DeleteWhere(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset, fieldNameValue map[string]any) error

func EmptyResult added in v0.2.0

func EmptyResult(err error) bool

EmptyResult returns true if error is empty result

func Exec added in v0.2.9

func Exists added in v0.2.9

func Exists(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, fieldName string, fieldValue any, skip ...any) (bool, error)

func Fetch added in v0.2.9

func Fetch(ctx context.Context, conn SqlxReaderCtx, qry *goqu.SelectDataset, target any) error

func FetchByKey added in v0.2.9

func FetchByKey(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, keyField string, value any, target any) error

func FetchOne added in v0.2.9

func FetchOne(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, target any) error

func FetchRecord added in v0.2.9

func FetchRecord(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, fieldValues map[string]any, target any) error

func FetchWhere added in v0.2.9

func FetchWhere(ctx context.Context, conn SqlxReaderCtx, qry *goqu.SelectDataset, fieldValues map[string]any, target any) error

func Insert added in v0.2.9

func Insert(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.InsertDataset, rows ...any) error

func InsertReturning added in v0.2.9

func InsertReturning(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.InsertDataset, record any, returnFields []interface{}, target ...any) error

func RawExec added in v0.2.9

func RawExec(ctx context.Context, conn sqlx.ExecerContext, sql string, args ...any) error

func Update added in v0.2.9

func Update(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.UpdateDataset) error

func UpdateByKey added in v0.2.9

func UpdateByKey(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.UpdateDataset, record any, keyField string, value any) error

func UpdateRecord added in v0.2.9

func UpdateRecord(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.UpdateDataset, record any, whereFieldsValues map[string]any) error

Types

type Builder added in v0.2.0

type Builder interface {
	Sql() goqu.DialectWrapper
	SqlSelect() *goqu.SelectDataset
	SqlInsert() *goqu.InsertDataset
	SqlUpdate() *goqu.UpdateDataset
	SqlDelete() *goqu.DeleteDataset
}

type Client

type Client interface {
	GetClient() *sqlx.DB
	IsConnected() bool
	Connect() error
	Disconnect()
}

type ConnectionOptions added in v0.2.0

type ConnectionOptions interface {
	Apply(db *sqlx.DB) error
}

type Counter added in v0.2.8

type Counter interface {
	Count() (int64, error)
	CountWhere(fieldValues map[string]any) (int64, error)
}

type Deleter added in v0.2.0

type Deleter interface {
	Delete(qry *goqu.DeleteDataset) error
	DeleteWhere(fieldNameValue map[string]any) error
	DeleteByKey(keyField string, value any) error
}

type Executor added in v0.1.4

type Executor interface {
	Exec(qry *goqu.SelectDataset) error
	RawExec(sql string, args ...any) error
	Select(sql string, target any, args ...any) error
}

type FV added in v0.2.2

type FV map[string]any // alias for fieldValues maps

type Identifier added in v0.2.0

type Identifier interface {
	Db() *sqlx.DB
	Name() string
}

type Reader added in v0.2.0

type Reader interface {
	FetchOne(qry *goqu.SelectDataset, target any) error
	FetchRecord(fieldValues map[string]any, target any) error
	Fetch(qry *goqu.SelectDataset, target any) error
	FetchWhere(fieldValues map[string]any, target any) error
	FetchByKey(keyField string, value any, target any) error
	Exists(fieldName string, fieldValue any, skip ...any) (bool, error)
}

type Repository added in v0.2.0

type Repository interface {
	Identifier
	Builder
	Reader
	Executor
	Writer
	Deleter
	Updater
	Counter
	NewTransaction(opts *sql.TxOptions) (Transaction, error)
}

func NewRepository added in v0.2.0

func NewRepository(ctx context.Context, conn *SqlClient, tableName string) Repository

type SqlClient added in v0.1.1

type SqlClient struct {
	Conn       *sqlx.DB
	Dsn        string
	DriverName string
	// contains filtered or unexported fields
}

func NewSqlClient added in v0.1.1

func NewSqlClient(dsn string, driverName string, connOptions ConnectionOptions) *SqlClient

func (*SqlClient) Connect added in v0.1.1

func (c *SqlClient) Connect() error

func (*SqlClient) Db added in v0.2.0

func (c *SqlClient) Db() *sqlx.DB

func (*SqlClient) Disconnect added in v0.1.1

func (c *SqlClient) Disconnect()

func (*SqlClient) IsConnected added in v0.1.1

func (c *SqlClient) IsConnected() bool

type SqlxReaderCtx added in v0.2.1

type SqlxReaderCtx interface {
	SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
}

type Transaction added in v0.2.0

type Transaction interface {
	Builder
	Reader
	Executor
	Writer
	Deleter
	Updater
	Counter

	Db() *sqlx.Tx
	Name() string

	Commit() error
	Rollback() error
}

type Updater added in v0.2.0

type Updater interface {
	Update(qry *goqu.UpdateDataset) error
	UpdateRecord(record any, whereFieldsValues map[string]any) error
	UpdateByKey(record any, keyField string, keyValue any) error
}

type Writer added in v0.2.0

type Writer interface {
	Insert(records ...any) error
	InsertReturning(record any, returnFields []interface{}, target ...any) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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