У меня есть функция, которая создает запрос SQL с динамическим c количеством where
предложений.
Оформление запроса SQL сохраняется в ResultSet, я хотел бы объявить этот результат установлен в try with resource
. Однако для этого требуется, чтобы объявленные элементы реализовывали AutoCloseable
, а тип String
- нет.
Моя идея состояла в том, чтобы использовать лямбда-метод, передать его в качестве параметра executeQuery, чтобы использовать его возвращаемый результат. в качестве параметра String, например, так:
try (Statement s = getStatement();
String test = "test";
ResultSet rs = s.executeQuery(() -> {
String query = "build y query here";
return query;
});
)
Но это дает следующую ошибку на executeQuery
:
Метод executeQuery (String) в операторе типа не применим для аргументов (() -> {})
Как и для () ->
:
целевой тип этого выражения должен быть функциональным интерфейсом
Есть ли способ сделать то, чего я хочу достичь?