FMPQuery.Builder

Описание

Класс FMPQuery.Builder является строителем для класса FMPQuery.

class Builder

Методы

Метод Описание
build() Построение экземпляра класса FMPQuery. Возвращает объект типа FMPQuery.
func build() -> FMPQuery
from(_:) Добавление в SQL-запрос оператора FROM.
func from(_ table: FMPTable) -> Builder

Параметры:

  • table. Таблица.

group(by:) Добавление в SQL-запрос оператора GROUP BY.
func group(by columns: [String]) -> Builder

Параметры:

  • columns. Список имен столбцов.

having(_:) Добавление в SQL-запрос оператора HAVING.
func having(_ conditions: [String]) -> Builder

Параметры:

  • conditions. Условия.

join(_:type:) Добавление в SQL-запрос оператора JOIN.
func join(_ table: FMPTable, type: JoinType = .inner) -> Builder

Параметры:

  • table. Таблица;

  • type. Вид join-запроса.

limit(_:offset:) Добавление в SQL-запрос оператора LIMIT.
func limit(_ limit: Int, offset: Int? = nil) -> Builder

Параметры:

  • limit. Число запрашиваемых строк;

  • offset. Число пропускаемых строк.

on(_:) Добавление в SQL-запрос оператора ON.
func on(_ conditions: [String]) -> Builder

Параметры:

  • conditions. Условия.

order(by:) Добавление в SQL-запрос оператора ORDER BY.
func order(by columns: [(column: String, asc: OrderType)]) -> Builder

Параметры:

  • columns. Условия сортировки, представляющие собой массив из кортежей с именем столбца column и соответствующим направлением сортировки order;

  • acs. Тип сортировки.

select(_:) Добавление в SQL-запрос оператора SELECT.
func select(_ columns: [String] = ["*"]) -> Builder

Параметры:

  • columns. Список имен столбцов.

transactions(_:) Добавление списка транзакций, которые будут использоваться при загрузке соответствующих ресурсов с помощью метода download(completion:) класса FMPQuery.
func transactions(_ transactions: [FMPTransaction]) -> Builder

Параметры:

  • transactions. Список транзакций.

using(_:) Добавление в SQL-запрос оператора USING.
func using(_ column: String) -> Builder

Параметры:

  • column. Имя столбца.

where(_:) Добавление в SQL-запрос оператора WHERE.
func where(_ conditions: [String]) -> Builder

Параметры:

  • conditions. Условия.

Пример

Построение экземпляра класса FMPQuery:

// Построим экземпляры класса FMPTable
let table1: FMPTable = fmp.table.build()
let table2: FMPTable = fmp.table.build()
 
 // Построим экземпляры класса FMPTransaction
let transaction1: FMPTransaction = fmp.transaction.build()
let transaction2: FMPTransaction = fmp.transaction.build()
 
// Построим экземпляр класса FMPQuery с query-выражением:
// SELECT column from table1 LEFT JOIN table2 USING(column) WHERE id = 0 AND key = all ORDER BY column ASC
// Также добавим список транзакций, который будет использоваться при загрузке ресурсов для table1 и table2
let query: FMPQuery = fmp.query
    .select(["column"])
    .from(table1)
    .join(table: table2, type: .left)
    .using("column")
    .where(["id = 0", "key = all"])
    .order(by: [("column", .asc)])
    .transactions([transaction1, transaction2])
    .build()

См. также:

Фреймворк FMPKit | Классы