что нужно использовать одно значение как много переменных.
Получается полотно из 10: stmt.setString(1, date);
Есть ли способ сделать это одной переменной в запросе?
Через SET @variable не срабатывает, т.к. тогда это идёт двумя запросами, нужно сделать в одном.
Спасибо.
не оно? jdbcTemplate.update(connection -> { PreparedStatement ps = connection.prepareStatement(sql); ps.setInt(1, Integer.parseInt(personId)); ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); ps.setBlob(2, inputStream); ps.setString(3, fileType); return ps; }); или я не правильно понял и как раз от этого уйти надо?
проблема заключается в том, что есть запрос условный: SELECT * FROM TABLE WHERE DATE > ? JOIN TABLE2 WHERE DATE > ? и таких условно 10 вопросов, где это одно и тоже значение в самой джаве это тоже получается, что 10 штук stmt.setString(1, date); stmt.setString(2, date); и вот вопрос в том, как бы провернуть так, чтобы это была одна переменная
NamedParameterJdbcTemplate не помог?
Использовать named jdbc template, например
можно попробовать генерировать строку через +
не смотрел в эту сторону, там классический jdbc, сonnection - statement - resultset попробую, спасибо)
А так? SET @date = '2023-08-23'; SELECT * FROM TABLE1 WHERE DATE > @date; JOIN TABLE2 WHERE DATE > @date; //другие запросы @date String date = "2023-08-23"; stmt.setString(1, date); // Не нужно повторять это для каждого запроса
Можно rowMapper использовать — он сразу в энтити запишет результат
Обсуждают сегодня