Такая задача: у меня есть массив типа String, содержащий коды клиентов которые я получаю методом getCodeClient.
Потом в базе oracle мне нужно получить таблицу с параметрами этих клиентов, таблица строиться на основании полученных выше кодов.
я по идее должен преобразовать массив в такой список {'code012','code876','code123', ит.д.}
как передать этот список в jdbc чтобы потом использовать в запросе?
по мотивам предложения из комментария:
public Client getClient(String... params){
StringBuilder query = new StringBuilder("SELECT * FROM \"TABLE_NAME\"");
StringJoiner join = new StringJoiner(" or ");
for(String param : params){
join.add(param);
}
String queryParams = join.toString();
if (!queryParam.isEmpty()){
query.append(" WHERE ");
query.append(queryParams);
}
...//дальше логика вашего запроса, а формирование запроса можно
//вынести в отдельный приватный метод.
}
Вынужден поправить предыдущих ораторов. Все верно кроме одного, формирование почти одинаковых запросов без применения PreparedStatement является антипаттерном.
Поясняю. PreparedStatement просьба о прекомпиляции устойчивого SQL выражения, так что при следующем вызове СУБД не будет заново компилировать SQL запрос, а будет только менять параметры вызова извлекая запрос из своего кэша, что значительно быстрее по времени + бонусом защита от SQL injection
Ближе к коду:
String selectSQL = "SELECT * FROM TABLE_NAME WHERE CODE = ?";
String whereClause="blah-blah";
PreparedStatement preparedStatement = dbConnection.prepareStatement(selectSQL);
И вот теперь уже можно формировать строку whereClause методом предложенным @Виктор через StringJoiner или StringBuilder подставляя его в PreparedStatement и вызывая собственно сам запрос (не меняя каждый раз объект PreparedStatement):
preparedStatement.setString(1, whereClause);
ResultSet rs = preparedStatement.executeQuery(selectSQL );
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники