mysql

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2022 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HighQPSMaxOpenConns = 100
)

Variables

This section is empty.

Functions

func RawMysqlConn

func RawMysqlConn(config *Config) (*sql.DB, error)

Types

type Config

type Config struct {
	Username     string        `default:"root"`
	Password     string        `default:"my-secret"`
	Host         string        `default:"localhost"`
	Port         int           `default:"3306"`
	DBName       string        `default:"test_db"`
	MaxOpenConns int           `default:"10"`
	MaxIdleConns int           `default:"10"`
	MaxLifetime  time.Duration `default:"60s"`
}

func ConfigFromEnv

func ConfigFromEnv() *Config

func ConfigFromEnvPrefix

func ConfigFromEnvPrefix(prefix string) *Config

func (*Config) String

func (c *Config) String() string

type DBExecuter

type DBExecuter interface {
	Invalidate(InvalidateFunc) error
	Query(ctx context.Context, unprepared string, args ...interface{}) (*sql.Rows, error)
	Exec(ctx context.Context, unprepared string, args ...interface{}) (sql.Result, error)
	Prepare(ctx context.Context, query string) (*sql.Stmt, error)
}

DBExecuter wraps transaction and non-transaction db calls

type InvalidateFunc

type InvalidateFunc = func() error

type Manager

type Manager interface {
	Ping() error
	Close() error
	GetConn() *sql.DB

	GetExec() DBExecuter
	Transact(txFunc func(DBExecuter) (interface{}, error)) (resp interface{}, err error)
}

Manager wraps the underlying *sql.DB to provide a uniformed interface of getting a simple or transactional SQL executor.

func NewMysqlManager

func NewMysqlManager(config *Config) (Manager, error)

func NewMysqlManagerWithMetrics

func NewMysqlManagerWithMetrics(config *Config, gauge *prometheus.GaugeVec, execCounter *prometheus.CounterVec, execHistogram *prometheus.HistogramVec) (Manager, error)

type RowScanner

type RowScanner interface {
	Scan(dest ...interface{}) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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