Class: DB_client

Inherits:
Object
  • Object
show all
Defined in:
lib/data_access/DB_client/DB_client.rb

Overview

DB_client

Клиент базы данных MySQL

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(db_config) ⇒ DB_client

Инициализация объекта класса БД.

Parameters:

  • db_config (Hash)
    • конфигурация базы данных.

Raises:

  • (Error)

    Не указана конфигурация базы данных.



12
13
14
15
# File 'lib/data_access/DB_client/DB_client.rb', line 12

def initialize(db_config)
    raise 'Не указана конфигурация базы данных' unless db_config
    self.client = Mysql2::Client.new(db_config)
end

Class Method Details

.instance(db_config = nil) ⇒ Mysql2::Client

Получение или создание объекта клиента базы данных. Конфигурацию БД достаточно задать 1 раз.

Parameters:

  • db_config (Hash) (defaults to: nil)
    • конфигурация базы данных.

Returns:

  • (Mysql2::Client)
    • объект клиента базы данных.

Raises:

  • (Error)

    Не указана конфигурация базы данных.



23
24
25
# File 'lib/data_access/DB_client/DB_client.rb', line 23

def self.instance(db_config = nil)
    @instance ||= new(db_config)
end

Instance Method Details

#closeObject

Закрытие объекта клиента базы данных.



38
39
40
# File 'lib/data_access/DB_client/DB_client.rb', line 38

def close
    self.client.close
end

#query(query, params = []) ⇒ Mysql2::Hash

Выполнение SQL запроса.

Parameters:

  • query (String)
    • SQL запрос.

  • params (Array) (defaults to: [])
    • массив параметров для SQL запроса (необязательно)

Returns:

  • (Mysql2::Hash)
    • результат выполнения запроса.



32
33
34
# File 'lib/data_access/DB_client/DB_client.rb', line 32

def query(query, params=[])
    self.client.prepare(query).execute(*params)
end