我遇到了这样的准备好的声明的问题:
select ... from ... where xy = ? and foo = ? and bla = ?
我可以为每个索引设置一个字符串吗?否则我必须做
prep.setString(1, "bla");
prep.setString(2, "bla");
prep.setString(3, "bla");
或for for循环......但是有优雅的方式吗? (除了适应准备好的声明之外?)可能有一种我还不知道的方法......
否则我创建自己的PreparedStatement类并使用此函数扩展它
答案 0 :(得分:3)
您是否真的需要为PreparedStatement
中的多个索引设置相同的值?对于少数用例来说,我不会为一些或两次循环而烦恼太多,你实际上必须这样做......
更新:当然您也可以将SQL重写为这样的内容; - )
select ... from ... where ? = all (
select xy from ..
union
select foo from ..
union
select bla from ..
)
然后你只有一个绑定变量和一个功能相同的SQL语句。我不知道表演,但是......
答案 1 :(得分:1)
我认为标准JDBC语句不能为您的问题提供解决方案。但如果您喜欢命名参数,则可以创建自己的NamedParameterStatement
。