PreparedStatement设置多个索引的值

时间:2011-07-19 10:21:07

标签: java sqlite prepared-statement

我遇到了这样的准备好的声明的问题:

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

我可以为每个索引设置一个字符串吗?否则我必须做

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

或for for循环......但是有优雅的方式吗? (除了适应准备好的声明之外?)可能有一种我还不知道的方法......

否则我创建自己的PreparedStatement类并使用此函数扩展它

2 个答案:

答案 0 :(得分:3)

您是否真的需要为PreparedStatement中的多个索引设置相同的值?对于少数用例来说,我不会为一些或两次循环而烦恼太多,你实际上必须这样做......

更新:当然您也可以将SQL重写为这样的内容; - )

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

然后你只有一个绑定变量和一个功能相同的SQL语句。我不知道表演,但是......

答案 1 :(得分:1)

我认为标准JDBC语句不能为您的问题提供解决方案。但如果您喜欢命名参数,则可以创建自己的NamedParameterStatement