Такая задача: у меня есть массив типа 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 );
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
На входе у меня 2 файла, файл p7s и файл, который был этой подписью подписанВопрос заключается в том, как можно проверить данные? Судя по всему,...
Добрый день, работаю с SQlite на java, вот у меня появился на корректность следующих строк кода
Такой вот вопос, у нас несколько человек работет над проектом, и в классе глобальных переменных есть такая boolean isDebugMode
В файле filejson сохраняется только один объект, последний