db

package
v0.44.0 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Batch added in v0.26.0

func Batch[S Storer, F Finder[R], R any](db S, finder F, batchNum int, handler func([]R) error) (err error)

Batch 批量处理查询到的数据

func BatchConcurrent added in v0.26.0

func BatchConcurrent[S Storer, F Finder[R], R any](db S, finder F, batchNum int, handler func([]R) error, concNum int) (err error)

BatchConcurrent 并发批量处理查询到的数据

func FindAll added in v0.25.0

func FindAll[S Storer, F Finder[R], R any](db S, finder F, inital R) (r []R, err error)

FindAll sql里select的字段数量必须与R的ScanFields方法返回的数组元素数量一致

func FindFirst added in v0.27.0

func FindFirst[S Storer, F Finder[R], R any](db S, finder F, res *R) (err error)

func FindList added in v0.27.0

func FindList[S Storer, F Finder[R], R any](db S, finder F, res *[]R) (err error)

func FindOne added in v0.25.0

func FindOne[S Storer, F Finder[R], R any](db S, finder F, inital R) (r R, err error)

func PrintFields added in v0.25.0

func PrintFields(fields []any)

func WrapConnFindAll added in v0.26.0

func WrapConnFindAll[F Finder[R], R any](
	ctx context.Context,
	db *sql.DB,
	finder F,
	inital R,
) (r []R, err error)

WrapConnFindAll query by stmt and args, return values with dest support many rows

func WrapDB added in v0.28.0

func WrapDB(
	ctx context.Context,
	driverName string,
	dataSourceName string,
	f func(
		ctx context.Context,
		conn *sql.DB,
	) error,
) error

func WrapSQLConn

func WrapSQLConn(
	ctx context.Context,
	db *sql.DB,
	f func(
		ctx context.Context,
		conn *sql.Conn,
	) error,
) error

func WrapSQLQueryRows

func WrapSQLQueryRows(
	ctx context.Context,
	db *sql.DB,
	stmt string,
	args []interface{},
	dest ...interface{},
) error

WrapSQLQueryRows query by stmt and args, return values with dest only support one row

func WrapTx added in v0.28.0

func WrapTx(
	ctx context.Context,
	db *sql.DB,
	f func(
		ctx context.Context,
		tx *sql.Tx,
	) error,
) (err error)

func WrapTxFindAll added in v0.26.0

func WrapTxFindAll[F Finder[R], R any](
	ctx context.Context,
	db *sql.DB,
	finder F,
	inital R,
) (r []R, err error)

Types

type Finder added in v0.25.0

type Finder[R any] interface {
	Query() (query string, args []any) // 返回查询语句,参数

	// 新建结果类型对象,不要使用同一个,用来接收结果
	// r需要是指针类型
	// fields需要是字段指针类型,需要与表的列保持一一对应
	NewScanObjAndFields(colTypes []*sql.ColumnType) (r *R, fields []any)
}

type Storer added in v0.26.0

type Storer interface {
	*sql.DB | *sql.Tx | *sql.Conn
	QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
}

Jump to

Keyboard shortcuts

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