PreparedStatement установить значение для нескольких индексов - PullRequest
2 голосов
/ 19 июля 2011

У меня проблема с подготовленным оператором, подобным этому:

select ... from ... where xy = ? and foo = ? and bla = ?

Могу ли я установить строку для каждого индекса?Иначе мне пришлось бы делать

prep.setString(1, "bla");
prep.setString(2, "bla");
prep.setString(3, "bla");

или с циклом for ... но есть ли элегантный способ?(кроме как подготовить подготовленное утверждение или около того?) Может есть метод, которого я пока не знаю ...

В противном случае я создаю свой собственный класс PreparedStatement и расширяю его с помощью этой функции

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

Как часто вам действительно нужно установить одно и то же значение для нескольких индексов в PreparedStatement?Я бы не стал слишком много беспокоиться о цикле один или два раза для нескольких вариантов использования, где вам действительно нужно это сделать ...

ОБНОВЛЕНИЕ : Конечно, вы могли бы такженапишите свой SQL примерно так; -)

select ... from ... where ? = all (
  select xy from ..
  union
  select foo from ..
  union
  select bla from ..
)

Тогда у вас будет только одна переменная связывания и функционально эквивалентный оператор SQL.Я не знаю о производительности, хотя ...

1 голос
/ 19 июля 2011

Я не думаю, что стандартные операторы JDBC обеспечивают решение вашей проблемы. Но вы можете создать свой собственный NamedParameterStatement, если вам нравятся именованные параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...