У меня есть такой запрос:
StringBuffer sqlQueryBuffer = new StringBuffer("SELECT DISTINCT email " +
"FROM prod01.events " +
"WHERE (event_date BETWEEN toDate(?) AND toDate(?) + 1) ");
При некоторых условиях к нему добавляются некоторые данные. Например:
if (!urlHost.isEmpty()) {
sqlQueryBuffer.append(" AND url_host = ? ");
}
В итоге крайней неудобно получается выполнять полный запрос:
SqlRowSet sqlRowSet;
if (!urlHost.isEmpty()) {
sqlQueryBuffer.append(" AND url_host = ?");
sqlRowSet = jdbcTemplate.queryForRowSet(
sqlQueryBuffer.toString(), fromDate.toString(), toDate.toString(), urlHost
);
} else {
sqlRowSet = jdbcTemplate.queryForRowSet(
sqlQueryBuffer.toString(), fromDate.toString(), toDate.toString()
);
}
Все становится еще хуже, если параметров в WHERE прибавляется. Что делать в такой ситуации ? Могу ли я как-то формировать текст запроса по частям ?
Можешь использовать форматирование строк. К примеру:
String text = String.format("The value is between %s and %s", value1, value2);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости