part

package
v0.28.20260113185815 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 13 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTypNil      = errors.New("ErrTypNil")      // panic error
	ErrPreErrWrong = errors.New("ErrPreErrWrong") // panic error
	ErrBeginTx     = errors.New("ErrBeginTx")
	ErrBeforeF     = errors.New("ErrBeforeF")
	ErrExec        = errors.New("ErrExec")
	ErrAfterExec   = errors.New("ErrAfterExec")
	ErrQuery       = errors.New("ErrQuery")
	ErrAfterQuery  = errors.New("ErrAfterQuery")
	ErrRollback    = errors.New("ErrRollback")
	ErrCommit      = errors.New("ErrCommit")
	ErrHadFin      = errors.New("ErrHadFin") // panic error
	ErrUndefinedTy = errors.New("ErrUndefinedTy")
)

Functions

func DealRows

func DealRows[T any](rows *sql.Rows) ([]T, error)

func DealRowsIter added in v0.28.20251111064354

func DealRowsIter[T any](rows *sql.Rows) iter.Seq[*Row[T]]

func DealRowsMapIter added in v0.28.20251123024248

func DealRowsMapIter(rows *sql.Rows, caseSwitchF ...CaseSwitchF) iter.Seq[*Row[map[string]any]]

func HasErrTx added in v0.28.20251210213244

func HasErrTx(err any, errs ...error) bool

Types

type AfterEF added in v0.25.2

type AfterEF func(result sql.Result) error

type AfterQF added in v0.25.2

type AfterQF func(rows *sql.Rows) error

type BeforeF added in v0.25.2

type BeforeF func(sqlf *SqlFunc) error

type CanTx

type CanTx interface {
	BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
}

type CaseSwitchF added in v0.28.20251123024248

type CaseSwitchF func(string) string
var ToCamel CaseSwitchF = func(s string) string {
	_count := 0
	for i := 0; i < len(s); i++ {
		if s[i] == '_' {
			_count += 1
		}
	}

	var (
		b    strings.Builder
		has_ bool
	)
	b.Grow(len(s) - _count)
	for i := 0; i < len(s); i++ {
		c := s[i]
		if c == '_' {
			has_ = true
		} else {
			if c >= utf8.RuneSelf {

			} else if 'a' <= c && c <= 'z' && has_ {

				c -= 'a' - 'A'
			} else if 'A' <= c && c <= 'Z' && !has_ {

				c += 'a' - 'A'
			}
			b.WriteByte(c)
			has_ = false
		}
	}
	return b.String()
}

type ErrTx added in v0.28.20251127090307

type ErrTx struct {
	Raw *SqlFunc

	Typ error
	Err error
	// contains filtered or unexported fields
}

func NewErrTx added in v0.28.20251127090307

func NewErrTx(preErrTx error, Typ, Err error) (n *ErrTx)

Typ must not nil

func ParseErrTx added in v0.28.20251127090307

func ParseErrTx(err error) *ErrTx

func (*ErrTx) Error added in v0.28.20251127090307

func (t *ErrTx) Error() (s string)

func (*ErrTx) ForwardRange added in v0.28.20251210213244

func (t *ErrTx) ForwardRange() iter.Seq[*ErrTx]

func (*ErrTx) Is added in v0.28.20251127090307

func (t *ErrTx) Is(e error) bool

func (*ErrTx) WithRaw added in v0.28.20251223185415

func (t *ErrTx) WithRaw(raw *SqlFunc) *ErrTx

type ReplaceF added in v0.28.20250114181028

type ReplaceF func(index int, holder string) (replaceTo string)
var (
	// "?"
	PlaceHolderA ReplaceF = func(index int, holder string) (replaceTo string) {
		return "?"
	}
	// "$%d"
	PlaceHolderB ReplaceF = func(index int, holder string) (replaceTo string) {
		return fmt.Sprintf("$%d", index+1)
	}
	// ":%d"
	PlaceHolderC ReplaceF = func(index int, holder string) (replaceTo string) {
		return fmt.Sprintf(":%d", index+1)
	}
)

type Row added in v0.28.20251123024248

type Row[T any] struct {
	Index int
	Raw   T
	Err   error
}

复用结构,当前值只能在迭代中使用

func DealRow added in v0.28.20251211081235

func DealRow[T any](rows *sql.Rows) *Row[T]

func DealRowMap added in v0.28.20251211081235

func DealRowMap(rows *sql.Rows, caseSwitchF ...CaseSwitchF) *Row[map[string]any]

type SqlFunc

type SqlFunc struct {
	Ty      Type            // 	Execf or Queryf, default: auto detection
	Ctx     context.Context // default: use transaction Ctx
	Sql     string
	Args    []any
	BeforeF BeforeF
	AfterEF AfterEF
	AfterQF AfterQF
}

func (*SqlFunc) Clear added in v0.28.20251127090307

func (t *SqlFunc) Clear() *SqlFunc

func (*SqlFunc) Copy added in v0.28.20251127090307

func (t *SqlFunc) Copy(dest *SqlFunc) *SqlFunc

type SqlTx

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

func BeginTx

func BeginTx(canTx CanTx, ctx context.Context, opts ...*sql.TxOptions) *SqlTx

func (*SqlTx) AddToTxs added in v0.28.20251211081235

func (t *SqlTx) AddToTxs(txs *SqlTxs)

func (*SqlTx) AfterEF added in v0.25.2

func (t *SqlTx) AfterEF(f AfterEF) *SqlTx

func (*SqlTx) AfterQF added in v0.25.2

func (t *SqlTx) AfterQF(f AfterQF) *SqlTx

func (*SqlTx) BeforeF added in v0.25.2

func (t *SqlTx) BeforeF(f BeforeF) *SqlTx

func (*SqlTx) Do

func (t *SqlTx) Do(sqlf *SqlFunc) *SqlTx

func (*SqlTx) DoPlaceHolder added in v0.25.2

func (t *SqlTx) DoPlaceHolder(sqlf *SqlFunc, queryPtr any, replaceF ReplaceF) *SqlTx

func (*SqlTx) FinF added in v0.28.20251214163330

func (t *SqlTx) FinF(f func()) *SqlTx

func (*SqlTx) Run added in v0.28.20251211081235

func (t *SqlTx) Run() (errTx error)

func (*SqlTx) SimpleDo added in v0.28.1

func (t *SqlTx) SimpleDo(sql string, args ...any) *SqlTx

func (*SqlTx) SimplePlaceHolderA added in v0.28.1

func (t *SqlTx) SimplePlaceHolderA(sql string, queryPtr any) *SqlTx

PlaceHolder will replaced by ?

func (*SqlTx) SimplePlaceHolderB added in v0.28.1

func (t *SqlTx) SimplePlaceHolderB(sql string, queryPtr any) *SqlTx

PlaceHolder will replaced by $%d

func (*SqlTx) SimplePlaceHolderC added in v0.28.20251111064354

func (t *SqlTx) SimplePlaceHolderC(sql string, queryPtr any) *SqlTx

PlaceHolder will replaced by :%d

func (*SqlTx) StopWithErr added in v0.28.20251210213244

func (t *SqlTx) StopWithErr(e error) *SqlTx

type SqlTxs added in v0.28.20251211081235

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

func NewSqlTxs added in v0.28.20251211081235

func NewSqlTxs() *SqlTxs

func (*SqlTxs) AddTx added in v0.28.20251211081235

func (t *SqlTxs) AddTx(tx *SqlTx) *SqlTxs

func (*SqlTxs) Run added in v0.28.20251211081235

func (t *SqlTxs) Run() (errTxI int, e error)

type TxPool added in v0.28.20251127090307

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

func NewTxPool added in v0.28.20251127090307

func NewTxPool(db *sql.DB) *TxPool

func (*TxPool) BeginTx added in v0.28.20251127090307

func (t *TxPool) BeginTx(ctx context.Context, opts ...*sql.TxOptions) *SqlTx

type Type added in v0.28.20241111143002

type Type int
const (
	Execf Type
	Queryf
)

Jump to

Keyboard shortcuts

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