mysql

package
v1.6.10 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2023 License: MIT Imports: 16 Imported by: 0

README

MySQL

Компонент, который позволяет подключаться к MySQL.

Реализует интерфейс Connector который наследуется от интерфейса driver.Connector, который доступен в контейнере объектов если этот компонент используется напрямую.

Пакет предоставляет метод NewDataBase, который возвращает ссылку на объект sql.DB, который будет сконфигурирован на основе коннектора из этого пакета.

Объект конфигурации.
type Config struct {
	Host     string
	Port     uint16
	User     string
	Password string
	DataBase string
}

Описание полей:

Поле Описание Значение по умолчанию
Host Хост для подключения к MySQL, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --db.mysql.host
- переменная окружения DB_MYSQL_HOST
- значение в конфиг файле db.mysql.host
127.0.0.1
Port Порт для подключения к MySQL, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --db.mysql.port
- переменная окружения DB_MYSQL_PORT
- значение в конфиг файле db.mysql.port
3306
User Имя пользователя для авторизации в MySQL, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --db.mysql.auth.user
- переменная окружения DB_MYSQL_AUTH_USER
- значение в конфиг файле db.mysql.auth.user
Password Пароль пользователя для авторизации в MySQL, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --db.mysql.auth.password
- переменная окружения DB_MYSQL_AUTH_PASSWORD
- значение в конфиг файле db.mysql.auth.password
DataBase Имя базы данных в MySQL, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --db.mysql.name
- переменная окружения DB_MYSQL_NAME
- значение в конфиг файле db.mysql.name

Documentation

Index

Constants

View Source
const (
	HostFieldName     = "db.mysql.host"
	PortFieldName     = "db.mysql.port"
	UserFieldName     = "db.mysql.auth.user"
	PasswordFieldName = "db.mysql.auth.password"
	DataBaseFieldName = "db.mysql.name"

	HostDefault = "127.0.0.1"
	PortDefault = uint16(3306)
)

Variables

View Source
var Component = &app.Component{
	Dependencies: app.Components{
		logger.Component,
		configurator.Component,
		re_configuration.Component,
		limiter.Component,
		info.Component,
	},
	Constructor: func(container container.Container) error {
		return container.Provides(
			NewConfig,
			NewReConfigurationWithConfigurator,
		)
	},
	BindFlags: func(flagSet *pflag.FlagSet, container container.Container) error {
		return container.Invoke(func(config *Config) {
			flagSet.StringVar(&config.Host, HostFieldName, HostDefault, "mysql connection host")
			flagSet.Uint16Var(&config.Port, PortFieldName, PortDefault, "mysql connection port")
			flagSet.StringVar(&config.User, UserFieldName, "", "mysql login user")
			flagSet.StringVar(&config.Password, PasswordFieldName, "", "mysql login password")
			flagSet.StringVar(&config.DataBase, DataBaseFieldName, "", "the name of the mysql database to use")
		})
	},
	Run: func(c container.Container) error {
		mysql, err := container.Get[*ReConfiguration](c)
		if err != nil {
			return err
		}

		reConfiguration, err := container.Get[configurator.ReConfiguration](c)
		if err != nil {
			return err
		}

		informer, err := container.Get[logger.Informer](c)
		if err != nil {
			return err
		}

		reConfiguration.Registration(mysql)
		informer.Info("data_base.mysql: registration in the reConfigurator")

		info, err := container.Get[info.Info](c)
		if err != nil {
			return err
		}

		config, err := container.Get[*Config](c)
		if err != nil {
			return err
		}

		info.Registration("data_base.mysql", config)

		return nil
	},
}

Functions

This section is empty.

Types

type Config

type Config struct {
	Host     string
	Port     uint16
	User     string
	Password string `info:"secret"`
	DataBase string
}

func Configuration

func Configuration(config *Config, configurator configurator.Configurator) *Config

func NewConfig

func NewConfig() *Config

type MySQL

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

func NewMySQL

func NewMySQL(logger logger.Logger, config *Config) (*MySQL, error)

func NewWithConfigurator

func NewWithConfigurator(config *Config, configurator configurator.Configurator, logger logger.Logger) (*MySQL, error)

func (*MySQL) Close

func (mysql *MySQL) Close() error

func (*MySQL) DriverName

func (mysql *MySQL) DriverName() string

func (*MySQL) Exec

func (mysql *MySQL) Exec(s string, i ...interface{}) (sql.Result, error)

func (*MySQL) ExecContext

func (mysql *MySQL) ExecContext(ctx context.Context, s string, i ...interface{}) (sql.Result, error)

func (*MySQL) Query

func (mysql *MySQL) Query(s string, i ...interface{}) (*sql.Rows, error)

func (*MySQL) QueryContext

func (mysql *MySQL) QueryContext(ctx context.Context, s string, i ...interface{}) (*sql.Rows, error)

func (*MySQL) QueryRow

func (mysql *MySQL) QueryRow(s string, i ...interface{}) *sql.Row

func (*MySQL) QueryRowContext

func (mysql *MySQL) QueryRowContext(ctx context.Context, s string, i ...interface{}) *sql.Row

func (*MySQL) SQL

func (mysql *MySQL) SQL() *sql.DB

type ReConfiguration

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

func NewReConfiguration

func NewReConfiguration(logger logger.Logger, limiter limiter.Limiter, config *Config) *ReConfiguration

func NewReConfigurationWithConfigurator

func NewReConfigurationWithConfigurator(logger logger.Logger, limiter limiter.Limiter, config *Config, configurator configurator.Configurator) *ReConfiguration

func (*ReConfiguration) Close

func (reConfiguration *ReConfiguration) Close() error

func (*ReConfiguration) DriverName

func (reConfiguration *ReConfiguration) DriverName() string

func (*ReConfiguration) Exec

func (reConfiguration *ReConfiguration) Exec(s string, i ...interface{}) (sql.Result, error)

func (*ReConfiguration) ExecContext

func (reConfiguration *ReConfiguration) ExecContext(ctx context.Context, s string, i ...interface{}) (sql.Result, error)

func (*ReConfiguration) MySQL

func (reConfiguration *ReConfiguration) MySQL() *ReConnect

func (*ReConfiguration) Query

func (reConfiguration *ReConfiguration) Query(s string, i ...interface{}) (*sql.Rows, error)

func (*ReConfiguration) QueryContext

func (reConfiguration *ReConfiguration) QueryContext(ctx context.Context, s string, i ...interface{}) (*sql.Rows, error)

func (*ReConfiguration) QueryRow

func (reConfiguration *ReConfiguration) QueryRow(s string, i ...interface{}) *sql.Row

func (*ReConfiguration) QueryRowContext

func (reConfiguration *ReConfiguration) QueryRowContext(ctx context.Context, s string, i ...interface{}) *sql.Row

func (*ReConfiguration) ReConfiguration

func (reConfiguration *ReConfiguration) ReConfiguration(configurator configurator.Configurator) error

func (*ReConfiguration) SQL

func (reConfiguration *ReConfiguration) SQL() *sql.DB

type ReConnect

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

func NewReConnect

func NewReConnect(config *Config, logger logger.Logger, limiter limiter.Limiter) *ReConnect

func NewReConnectWithConfigurator

func NewReConnectWithConfigurator(config *Config, logger logger.Logger, limiter limiter.Limiter, configurator configurator.Configurator) *ReConnect

func (*ReConnect) Close

func (reConnect *ReConnect) Close() error

func (*ReConnect) Connect

func (reConnect *ReConnect) Connect() error

func (*ReConnect) DriverName

func (reConnect *ReConnect) DriverName() string

func (*ReConnect) Exec

func (reConnect *ReConnect) Exec(s string, i ...interface{}) (sql.Result, error)

func (*ReConnect) ExecContext

func (reConnect *ReConnect) ExecContext(ctx context.Context, s string, i ...interface{}) (sql.Result, error)

func (*ReConnect) MySQL

func (reConnect *ReConnect) MySQL() (*MySQL, error)

func (*ReConnect) Query

func (reConnect *ReConnect) Query(s string, i ...interface{}) (*sql.Rows, error)

func (*ReConnect) QueryContext

func (reConnect *ReConnect) QueryContext(ctx context.Context, s string, i ...interface{}) (*sql.Rows, error)

func (*ReConnect) QueryRow

func (reConnect *ReConnect) QueryRow(s string, i ...interface{}) *sql.Row

func (*ReConnect) QueryRowContext

func (reConnect *ReConnect) QueryRowContext(ctx context.Context, s string, i ...interface{}) *sql.Row

func (*ReConnect) SQL

func (reConnect *ReConnect) SQL() *sql.DB

Jump to

Keyboard shortcuts

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