Class DbHelper.ExecuteQuery

  • All Implemented Interfaces:

    
    public final class DbHelper.ExecuteQuery
    
                        

    Дополнительный класс, предоставляющий методы доступа к БД

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final DbHelper.ExecuteQuery failOnException(Boolean f) Нужно ли завершать тест как непройденный, если запрос не выполнен, или в процессе выполнения возникло исключение.
      final DbHelper.ExecuteQuery withParameters(Map<String, Object> p) Передача параметров запроса.
      final DbHelper.ExecuteQuery withMessage(String m) Передача описания запроса.
      final <T extends Any> List<T> forList(String sql, Class<T> cls) Метод выполняет запрос к БД и возвращает список объектов.
      final List<Entity> forList(String sql) Метод выполняет запрос к БД и возвращает список ассоциативных массивов (Entity), где ключ массива - название столбца, значение - значение из таблицы
      fun getEntitiesListByValue(value: String): List<Entity> {
          val query = "SELECT * FROM entities WHERE value = '$value'"
          return dbHelper.executeQuery
               .withMessage("Получение записей из таблицы")
               .forList(query);
      }
      final <T extends Any> T forListAndGetFirst(String sql, Class<T> cls) Метод выполняет запрос к БД.
      final Entity forListAndGetFirst(String sql) Метод выполняет запрос к БД.
      final <T extends Any> Optional<T> forOptionalObject(String sql, Class<T> cls) Метод выполняет запрос к БД.
      final Integer withoutResponse(String sql) Метод выполняет запрос к БД без ответа (DELETE, UPDATE, INSERT и т.д.).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • failOnException

         final DbHelper.ExecuteQuery failOnException(Boolean f)

        Нужно ли завершать тест как непройденный, если запрос не выполнен, или в процессе выполнения возникло исключение.

        После выполнения запроса настройка сбрасывается.

        Parameters:
        f - Нужно ли завершать тест как непройденный
        Returns:

        ExecuteQuery

        Since:

        2.5.2

      • withMessage

         final DbHelper.ExecuteQuery withMessage(String m)

        Передача описания запроса.

        После выполнения запроса описание сбрасываются.

        Parameters:
        m - Описание
        Returns:

        ExecuteQuery

        Since:

        2.5.2

      • forList

         final <T extends Any> List<T> forList(String sql, Class<T> cls)

        Метод выполняет запрос к БД и возвращает список объектов.

        public List<Table> getEntitiesListByValue(String value) {
            var query = String.format("SELECT * FROM entities WHERE value = '%s'", value);
            return dbHelper.executeQuery
                .withMessage("Получение записей из таблицы")
                .forList(query, Table.class);
        }
        Parameters:
        sql - Запрос
        cls - Класс ответа T.
        Returns:

        Список объектов класса T

        Since:

        2.5.2

      • forList

         final List<Entity> forList(String sql)

        Метод выполняет запрос к БД и возвращает список ассоциативных массивов (Entity), где ключ массива - название столбца, значение - значение из таблицы

        fun getEntitiesListByValue(value: String): List<Entity> {
            val query = "SELECT * FROM entities WHERE value = '$value'"
            return dbHelper.executeQuery
                 .withMessage("Получение записей из таблицы")
                 .forList(query);
        }
        Parameters:
        sql - Запрос
        Returns:

        Список Entity

        Since:

        2.5.1

      • forListAndGetFirst

         final <T extends Any> T forListAndGetFirst(String sql, Class<T> cls)

        Метод выполняет запрос к БД. Работает аналогично методу forList, но возвращает только первый объект из списка.

        Метод используется, например, с sql-запросами с оператором ORDER BY.

        public Table getEntityByValue(String value) {
            var query = "SELECT * FROM table WHERE value = :value ORDER BY id DESC";
            var params = Map.of("value", value);
            return dbHelper.executeQuery
                 .withParameters(params)
                 .withMessage("Получение записи из таблицы")
                 .forListAndGetFirst(query, Table.class);
        }
        public Table getEntityByValue(String value) {
            var query = "SELECT * FROM table WHERE value = '" + value + "' ORDER BY id DESC";
            return dbHelper.executeQuery
                 .withMessage("Получение записи из таблицы")
                 .forListAndGetFirst(query, Table.class);
        }
        Parameters:
        sql - Запрос
        cls - Класс ответа T.
        Returns:

        Объект класса T

        Since:

        2.5.2

      • forListAndGetFirst

         final Entity forListAndGetFirst(String sql)

        Метод выполняет запрос к БД. Работает аналогично методу forList, но возвращает только первый объект Entity из списка или пустой объект Entity, если список пуст.

        Parameters:
        sql - Запрос
        Returns:

        Объект Entity

        Since:

        2.5.2

      • forOptionalObject

         final <T extends Any> Optional<T> forOptionalObject(String sql, Class<T> cls)

        Метод выполняет запрос к БД. Работает аналогично методу forList, но возвращает только первый элемент списка, обернутый в Optional, или пустой Optional, если список пуст.

        Метод используется, например, с sql-запросами с оператором ORDER BY.

        Parameters:
        sql - Запрос
        cls - Класс ответа T.
        Returns:

        Объект класса T, обернутый в Optional

        Since:

        2.5.2

      • withoutResponse

         final Integer withoutResponse(String sql)

        Метод выполняет запрос к БД без ответа (DELETE, UPDATE, INSERT и т.д.).

        Пример:

        public int deleteEntitiesByValue(String value) {
            var query = "DELETE * FROM entities WHERE Value = :value";
            var params = Map.of("value", value);
            return dbHelper.executeQuery
                     .withParameters(params)
                     .withMessage("Удаление записей из таблицы")
                     .withoutResponse(query, params);
        }
        Parameters:
        sql - Запрос
        Returns:

        Количество строк, затронутых запросом

        Since:

        2.5.2