Documentation
¶
Index ¶
Constants ¶
View Source
const ( HighQPSMaxOpenConns = 100 AppNameLengthMax = 32 )
Variables ¶
This section is empty.
Functions ¶
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"` AppName string `default:""` EnablePrometheus bool `default:"true"` }
func ConfigFromEnv ¶
func ConfigFromEnv() *Config
func ConfigFromEnvPrefix ¶
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 ¶
type RowScanner ¶
type RowScanner interface {
Scan(dest ...interface{}) error
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.