entity
entity copied to clipboard
Конструктор SQL запросов
Хотелось бы видеть функционал создания sql запросов в виде конструктора в fluent стиле. Примеры: Дано:
- Сущность
Автор
с полями: Код, Имя, Почта, Роль. Таблица бд называется Авторы. - Сущность
Роль
с полями: Код, Имя. Таблица бд называется Роли.
Конструктор = МенеджерСущностей.КонструкторЗапросов();
Выборка = Конструктор.Из("Автор") .Где("Код", 1).Выполнить();
Для Каждого ЭлементВыборки Из Выборка Цикл
Сообщить(ЭлементВыборки.Имя);
КонецЦикла;
Возможности:
-
Из(ИмяСущности)
- метод FROM -
Где(ИмяПоля, Значение)
,Где(Соответствие)
,Где(Массив)
- метод WHERE -
Выбрать()
,Выбрать("ИмяСущности.Поле1, ИмяСущности.Поле2, ИмяСущности.Поле3")
,Выбрать(Массив)
- указание выбора определенных полей из запроса -
Ограничить(НомерЗаписи, КоличествоЗаписей)
- метод LIMIT -
ЛевоеСоединение(Условие)
,ПравоеСоединение(Условие)
,ВнутренееСоединение(Условие)
,ВнешнееСоединение(Условие)
- методы LEFT JOIN, RIGHT JOIN, INNER JOIN, OUTER JOIN -
Упорядочить(Поле, ПорядокСортировки)
,Упорядочик(Массив)
- метод ORDER BY -
Выполнить()
- выполнить запрос
Еще пример (дано такое же):
Выборка = Конструктор
.Из("Автор")
.Выбрать("Автор.Имя, Автор.Почта")
.ЛевоеСоединение("Роль", "Автор.Роль=Роль.Код")
.Выбрать("Роль.Имя")
.Упорядочить("Автор.Имя", ПорядокСортировки.Убывание);
.Выполнить();
Как пример всего этого в других языках: fluentPDO